]> err.no Git - dpkg/commitdiff
Don't access uninitialised memory
authorTollef Fog Heen <tfheen@err.no>
Wed, 26 Dec 2007 09:09:28 +0000 (10:09 +0100)
committerTollef Fog Heen <tfheen@err.no>
Wed, 26 Dec 2007 09:09:28 +0000 (10:09 +0100)
Trivial fix to make sure we allocate memory before trying to access
where a pointer points.

lib/myopt.c

index 3a066c937e152211c25eb5ac4912e5c8984a075a..64d4122c66390d2114e298a71909860961a81e13 100644 (file)
@@ -185,6 +185,11 @@ void loadfilter(char *fn) {
   while (fgets(linebuf, sizeof(linebuf), file)) {
     struct filterlist *filter;
 
+    filter = malloc(sizeof(struct filterlist));
+    if (!filter) {
+      ohshite(_("Error allocating memory for filter entry"));
+    }
+
     if (linebuf[0] == '#' || linebuf[0] == '\n') {
       continue;
     }
@@ -198,11 +203,8 @@ void loadfilter(char *fn) {
       filter->positive = 0;
     } else {
       warningf(_("Invalid filter line: `%.255s'"), linebuf);
-    }
-
-    filter = malloc(sizeof(struct filterlist));
-    if (!filter) {
-      ohshite(_("Error allocating memory for filter entry"));
+      free(filter);
+      continue;
     }
 
     filter->filterstring = malloc(strlen(linebuf));