1
0
Эх сурвалжийг харах

Bug 630097 - (cov#15473) NULL dereference in ResHashCreate()

If there is a problem allocating pResHash, we jump to the error
label.  The error label then dereferences pResHash to do a deep
free, but it doesn't check if pResHash is NULL first.  We need to
check if pResHash is NULL before dereferencing it.
Nathan Kinder 15 жил өмнө
parent
commit
50df94f549

+ 2 - 2
lib/libsi18n/reshash.c

@@ -276,8 +276,8 @@ ResHash * ResHashCreate(char * name)
     goto done;
 
 error:
-    if (pResHash->treelist && pResHash->treelist->vlist) free(pResHash->treelist->vlist);
-    if (pResHash->treelist) free(pResHash->treelist);
+    if (pResHash && pResHash->treelist && pResHash->treelist->vlist) free(pResHash->treelist->vlist);
+    if (pResHash && pResHash->treelist) free(pResHash->treelist);
     if (pResHash) free(pResHash);
     return NULL;