r19928: Fix klokwork id 4509, 4573, 4574.
authorVolker Lendecke <vlendec@samba.org>
Tue, 28 Nov 2006 09:06:04 +0000 (09:06 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:16:10 +0000 (12:16 -0500)
(This used to be commit c004d041817f0bdf99a205090c8b026dfb0d81bc)

source3/iniparser/src/dictionary.c
source3/iniparser/src/iniparser.c

index 1f55cb4c244d64861dcc162ed62bb9beaae45d61..edbd6f9a353f01e8afc637f4059b9770261df5a2 100644 (file)
@@ -114,7 +114,9 @@ dictionary * dictionary_new(int size)
        /* If no size was specified, allocate space for DICTMINSZ */
        if (size<DICTMINSZ) size=DICTMINSZ ;
 
-       d = (dictionary *)calloc(1, sizeof(dictionary));
+       if (!(d = (dictionary *)calloc(1, sizeof(dictionary)))) {
+               return NULL;
+       }
        d->size = size ;
        d->val  = (char **)calloc(size, sizeof(char*));
        d->key  = (char **)calloc(size, sizeof(char*));
@@ -355,6 +357,10 @@ void dictionary_unset(dictionary * d, char * key)
        unsigned        hash ;
        int                     i ;
 
+       if (key == NULL) {
+               return;
+       }
+
        hash = dictionary_hash(key);
        for (i=0 ; i<d->size ; i++) {
         if (d->key[i]==NULL)
index 67f42a347d329f9def165bd59529164ad631a438..0cb452b26550faaad36f9464b38f1ccb396ffb3b 100644 (file)
@@ -259,7 +259,9 @@ char * iniparser_getstring(dictionary * d, const char * key, char * def)
     if (d==NULL || key==NULL)
         return def ;
 
-    lc_key = strdup(strlwc(key));
+    if (!(lc_key = strdup(strlwc(key)))) {
+           return NULL;
+    }
     sval = dictionary_get(d, lc_key, def);
     free(lc_key);
     return sval ;
@@ -462,7 +464,10 @@ dictionary * iniparser_load(const char * ininame)
     /*
      * Initialize a new dictionary entry
      */
-    d = dictionary_new(0);
+    if (!(d = dictionary_new(0))) {
+           fclose(ini);
+           return NULL;
+    }
     lineno = 0 ;
     while (fgets(lin, ASCIILINESZ, ini)!=NULL) {
         lineno++ ;