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:
Blue Swirl
2010-04-25 12:53:39 +00:00
parent 183f3f9b00
commit 2864f104c5
2 changed files with 10 additions and 5 deletions

View File

@@ -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;

View File

@@ -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 */