[OpenBIOS] [commit] r752 - in trunk/openbios-devel: libopenbios packages

repository service svn at openbios.org
Sun Apr 25 14:53:40 CEST 2010


Author: blueswirl
Date: Sun Apr 25 14:53:39 2010
New Revision: 752
URL: http://tracker.coreboot.org/trac/openbios/changeset/752

Log:
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 at gmail.com>

Modified:
   trunk/openbios-devel/libopenbios/elf_load.c
   trunk/openbios-devel/packages/disk-label.c

Modified: trunk/openbios-devel/libopenbios/elf_load.c
==============================================================================
--- trunk/openbios-devel/libopenbios/elf_load.c	Sun Apr 25 14:53:37 2010	(r751)
+++ trunk/openbios-devel/libopenbios/elf_load.c	Sun Apr 25 14:53:39 2010	(r752)
@@ -264,11 +264,13 @@
     memcpy(addr, &nhdr, sizeof(nhdr));
     addr += sizeof(nhdr);
 
-    memcpy(addr, name, nhdr.n_namesz);
-    addr += nhdr.n_namesz;
-    pad = padded(nhdr.n_namesz) - nhdr.n_namesz;
-    memset(addr, 0, pad);
-    addr += pad;
+    if (name && nhdr.n_namesz) {
+        memcpy(addr, name, nhdr.n_namesz);
+        addr += nhdr.n_namesz;
+        pad = padded(nhdr.n_namesz) - nhdr.n_namesz;
+        memset(addr, 0, pad);
+        addr += pad;
+    }
 
     memcpy(addr, desc, nhdr.n_descsz);
     addr += nhdr.n_descsz;

Modified: trunk/openbios-devel/packages/disk-label.c
==============================================================================
--- trunk/openbios-devel/packages/disk-label.c	Sun Apr 25 14:53:37 2010	(r751)
+++ trunk/openbios-devel/packages/disk-label.c	Sun Apr 25 14:53:39 2010	(r752)
@@ -68,6 +68,9 @@
 	if (!path) {
 		path = strdup("");
 	}
+        if (!path) {
+                goto out;
+        }
 	DPRINTF("dlabel-open '%s'\n", path );
 
 	/* open disk interface */



More information about the OpenBIOS mailing list