From: Joshua Oreman Date: Fri, 20 Nov 2009 03:20:17 +0000 (-0500) Subject: [pxebs] Consistently interpret PXE type field as little-endian X-Git-Tag: v1.0.0-rc1~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7a5aaecda2b37653b6f3debe25ff4cf03cb0d4d4;p=thirdparty%2Fipxe.git [pxebs] Consistently interpret PXE type field as little-endian The PXE menu code also treated the type as big-endian, which went unnoticed until the first fix because its ntohs() was matched by a htons() in the PXE boot server discovery code. Signed-off-by: Marty Connor --- diff --git a/src/usr/pxemenu.c b/src/usr/pxemenu.c index a778a1268..519c200e1 100644 --- a/src/usr/pxemenu.c +++ b/src/usr/pxemenu.c @@ -153,7 +153,7 @@ static int pxe_menu_parse ( struct pxe_menu **menu ) { ( num_menu_items * sizeof ( (*menu)->items[0] ) ) ); memcpy ( raw_menu_item, raw_menu, raw_menu_len ); for ( i = 0 ; i < num_menu_items ; i++ ) { - (*menu)->items[i].type = ntohs ( raw_menu_item->type ); + (*menu)->items[i].type = le16_to_cpu ( raw_menu_item->type ); (*menu)->items[i].desc = raw_menu_item->desc; /* Set type to 0; this ensures that the description * for the previous menu item is NUL-terminated.