core: Change numIPAppends data type
authorMatt Fleming <matt.fleming@intel.com>
Thu, 2 Aug 2012 13:51:03 +0000 (14:51 +0100)
committerMatt Fleming <matt.fleming@intel.com>
Thu, 2 Aug 2012 13:51:03 +0000 (14:51 +0100)
For EFI we don't have the opportunity to mess with the object type of
'numIPAppends' via assembly as is done for BIOS - we need to do it all
in C. So change numIPAppends to size_t to accurately reflect its use.

Without this change the loop in __syslinux_get_ipappend_strings()
actually uses the address of numIPAppends instead of any value stored
there because it's a char array.

Signed-off-by: Matt Fleming <matt.fleming@intel.com>
core/include/core.h
efi/main.c

index c665d79..be687f8 100644 (file)
@@ -36,7 +36,7 @@ extern unsigned int __bcopyxx_len;
 extern uint8_t KbdMap[256];
 
 extern const uint16_t IPAppends[];
-extern const char numIPAppends[];
+extern size_t numIPAppends;
 
 extern uint16_t SerialPort;
 extern uint16_t BaudDivisor;
index f98d95c..379b475 100644 (file)
@@ -81,7 +81,7 @@ void pxenv(void)
 {
 }
 
-const char numIPAppends[4];
+size_t numIPAppends = 0;
 const uint16_t IPAppends[32];
 uint16_t BIOS_fbm = 1;
 far_ptr_t InitStack;