[U-Boot] fat.c:707: warning: array subscript is above array bounds
Wolfgang Denk
wd at denx.de
Sat Dec 13 23:13:01 CET 2008
Hello,
building U-Boot with recent toolchains (like GCC-4.3.2) results in
this warning:
fat.c: In function 'read_bootsectandvi':
fat.c:707: warning: array subscript is above array bounds
The respective code looks like this:
fs/fat/fat.c:
705 /* Terminate fs_type string. Writing past the end of vistart
706 is ok - it's just the buffer. */
707 vistart->fs_type[8] = '\0';
fs_type[] is declared in "include/fat.h":
143 typedef struct volume_info
144 {
145 __u8 drive_number; /* BIOS drive number */
146 __u8 reserved; /* Unused */
147 __u8 ext_boot_sign; /* 0x29 if fields below exist (DOS 3.3+) */
148 __u8 volume_id[4]; /* Volume ID number */
149 char volume_label[11]; /* Volume label */
150 char fs_type[8]; /* Typically FAT12, FAT16, or FAT32 */
151 /* Boot code comes next, all but 2 bytes to fill up sector */
152 /* Boot sign comes last, 2 bytes */
153 } volume_info;
So the comment in fs/fat/fat.c is actually correct, writing beyond
the end of the string is indeed uncritical here, but it is definitely
not really nice either.
I want to get rid of this warning message.
Any ideas how to deal with this?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"Am besten betrachten Sie Fehlermeldungen als eine Art Psycho-Test,
mit dem herausgefunden werden soll, wie belastbar Sie sind."
- Dr. R. Wonneberger, Kompaktführer LaTeX, Kap. 1.6: Fehlermeldungen
More information about the U-Boot
mailing list