mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
Fix NULL pointer dereferences, spotted by clang analyzer
Fix clang warnings:
../packages/disk-label.c:83:6: warning: Dereference of null pointer
if( *s == '-' || isdigit(*s) ||
../libopenbios/elf_load.c:267:5: warning: Null pointer passed as an argument to a 'nonnull' parameter
memcpy(addr, name, nhdr.n_namesz);
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@752 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
@@ -264,11 +264,13 @@ static Elf_Bhdr *add_boot_note(Elf_Bhdr *bhdr, const char *name,
|
|||||||
memcpy(addr, &nhdr, sizeof(nhdr));
|
memcpy(addr, &nhdr, sizeof(nhdr));
|
||||||
addr += sizeof(nhdr);
|
addr += sizeof(nhdr);
|
||||||
|
|
||||||
memcpy(addr, name, nhdr.n_namesz);
|
if (name && nhdr.n_namesz) {
|
||||||
addr += nhdr.n_namesz;
|
memcpy(addr, name, nhdr.n_namesz);
|
||||||
pad = padded(nhdr.n_namesz) - nhdr.n_namesz;
|
addr += nhdr.n_namesz;
|
||||||
memset(addr, 0, pad);
|
pad = padded(nhdr.n_namesz) - nhdr.n_namesz;
|
||||||
addr += pad;
|
memset(addr, 0, pad);
|
||||||
|
addr += pad;
|
||||||
|
}
|
||||||
|
|
||||||
memcpy(addr, desc, nhdr.n_descsz);
|
memcpy(addr, desc, nhdr.n_descsz);
|
||||||
addr += nhdr.n_descsz;
|
addr += nhdr.n_descsz;
|
||||||
|
|||||||
@@ -68,6 +68,9 @@ dlabel_open( dlabel_info_t *di )
|
|||||||
if (!path) {
|
if (!path) {
|
||||||
path = strdup("");
|
path = strdup("");
|
||||||
}
|
}
|
||||||
|
if (!path) {
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
DPRINTF("dlabel-open '%s'\n", path );
|
DPRINTF("dlabel-open '%s'\n", path );
|
||||||
|
|
||||||
/* open disk interface */
|
/* open disk interface */
|
||||||
|
|||||||
Reference in New Issue
Block a user