mirror of https://gitlab.com/qemu-project/dtc.git
Fix uninitialized access bug in utilfdt_decode_type
I just found this little bug with valgrind. strchr() will return true if the given character is '\0'. This meant that utilfdt_decode_type() could take a path which accesses uninitialized data when given the (invalid) format string "L". Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
0b3b46e019
commit
e280442e08
5
util.c
5
util.c
|
@ -296,6 +296,9 @@ int utilfdt_decode_type(const char *fmt, int *type, int *size)
|
|||
{
|
||||
int qualifier = 0;
|
||||
|
||||
if (!*fmt)
|
||||
return -1;
|
||||
|
||||
/* get the conversion qualifier */
|
||||
*size = -1;
|
||||
if (strchr("hlLb", *fmt)) {
|
||||
|
@ -311,7 +314,7 @@ int utilfdt_decode_type(const char *fmt, int *type, int *size)
|
|||
}
|
||||
|
||||
/* we should now have a type */
|
||||
if (!strchr("iuxs", *fmt))
|
||||
if ((*fmt == '\0') || !strchr("iuxs", *fmt))
|
||||
return -1;
|
||||
|
||||
/* convert qualifier (bhL) to byte size */
|
||||
|
|
Loading…
Reference in New Issue