Jeff, I suppose you are the admin of git on scan.coverity, or knows him/her, perhaps we can add a model for xmalloc to suppress these "null pointer deferences" reports? We are sure xmalloc() never returns NULL. Qemu did it [1] and it looks simple.. I think something like this would do
void *xmalloc(size_t size)
{
void *mem = malloc(size);
if (!mem) __coverity_panic__();
return mem;
}[1] http://git.qemu.org/?p=qemu.git;a=blob;f=scripts/coverity-model.c;h=4c99a85cfc292caa9edd9d041e2683ee53490a8d;hb=e40cdb0e6efb795e4d19368987d53e3e4ae19cf7#l104
---------- Forwarded message ---------- From: <scan-admin@coverity.com> Date: Fri, Jul 31, 2015 at 5:54 PM Subject: New Defects reported by Coverity Scan for git To: pclouds@gmail.com
_______________________________________________________________________________________________________ *** CID 1313836: Null pointer dereferences (FORWARD_NULL) /rerere.c: 150 in find_rerere_dir() 144 return NULL; /* BUG */ 145 pos = sha1_pos(sha1, rerere_dir, rerere_dir_nr, rerere_dir_sha1); 146 if (pos < 0) { 147 rr_dir = xmalloc(sizeof(*rr_dir)); 148 hashcpy(rr_dir->sha1, sha1); 149 rr_dir->status_nr = rr_dir->status_alloc = 0;
>>> CID 1313836: Null pointer dereferences (FORWARD_NULL) >>> Assigning: "rr_dir->status" = "NULL".
150 rr_dir->status = NULL; 151 pos = -1 - pos; 152 153 /* Make sure the array is big enough ... */ 154 ALLOC_GROW(rerere_dir, rerere_dir_nr + 1, rerere_dir_alloc); 155 /* ... and add it in. */
** CID 1313835: Null pointer dereferences (FORWARD_NULL) /builtin/fetch.c: 795 in prune_refs()
-- Duy