[syslinux] [PATCH] isohybrid: fix overflow on 32 bit system

H. Peter Anvin hpa at zytor.com
Mon May 12 07:38:52 PDT 2014


That is because it needs to use fseeko() and use off_t.

On May 11, 2014 11:53:17 PM PDT, Kang Kai <Kai.Kang at windriver.com> wrote:
>On 2014年05月12日 10:49, H. Peter Anvin wrote:
>> On 05/11/2014 06:56 PM, Kai Kang wrote:
>>> When call isohybrid with option '-u', it overflows on a 32 bits
>host. It
>>> seeks to 512 bytes before the end of the image to install gpt
>header. If
>>> the size of image is larger than LONG_MAX, it overflows fseek() and
>>> cause error:
>>>
>>> isohybrid: wrlinux-image-x86-64-20140505110100.iso: seek error - 8:
>Invalid argument
>>>
>>> Check the offset and call fseek() multi-times if offset is too
>large.
>>>
>>> Signed-off-by: Kai Kang <kai.kang at windriver.com>
>> NAK.
>>
>> The right thing to do is compile it with #define _FILE_OFFSET_BITS 64
>> and change fseek to fseeko with the appropriate type being off_t.
>>
>> 	-hpa
>
>Hi hpa,
>
>Thanks for your reply.
>
>In utils/Makefile, -D_FILE_OFFSET_BITS=64 is added to CFLAGS. isohybrid
>
>is compiled with -D_FILE_OFFSET_BITS=64 but it still fails to handle
>the 
>large offset.
>
>make[3]: Entering directory 
>`/home/neil/wrlinux/builds/install-x86-64/bitbake_build/tmp/work/i686-linux/syslinux-native/6.01-r0/syslinux-6.01/bios/utils'
>gcc 
>-isystem/home/neil/wrlinux/builds/install-x86-64/bitbake_build/tmp/sysroots/i686-linux/usr/include
>
>-O2 -pipe -Wp,-MT,isohybrid.o,-MMD,./.isohybrid.o.d -W -Wall 
>-Wstrict-prototypes -Os -fomit-frame-pointer *-D_FILE_OFFSET_BITS=64* 
>-I/home/neil/wrlinux/builds/install-x86-64/bitbake_build/tmp/work/i686-linux/syslinux-native/6.01-r0/syslinux-6.01/utils
>
>-c -o isohybrid.o 
>/home/neil/wrlinux/builds/install-x86-64/bitbake_build/tmp/work/i686-linux/syslinux-native/6.01-r0/syslinux-6.01/utils/isohybrid.c
>
>I build it on RedHat Enterprise Linux 6.2 with glibc 2.12.
>
>Regards,
>Kai
>
>>

-- 
Sent from my mobile phone.  Please pardon brevity and lack of formatting.


More information about the Syslinux mailing list