]> git.proxmox.com Git - libgit2.git/commitdiff
common: introduce GITERR_CHECK_ALLOC_BUF
authorPatrick Steinhardt <ps@pks.im>
Tue, 23 Feb 2016 08:54:26 +0000 (09:54 +0100)
committerPatrick Steinhardt <ps@pks.im>
Tue, 23 Feb 2016 10:50:23 +0000 (11:50 +0100)
We commonly have to check if a git_buf has been allocated
correctly or if we ran out of memory. Introduce a new macro
similar to `GITERR_CHECK_ALLOC` which checks if we ran OOM and if
so returns an error. Provide a `#nodef` for Coverity to mark the
error case as an abort path.

script/user_nodefs.h
src/common.h

index 5b0be81a342064f3376aac86e707e26b8d6527f6..3c06a706ddf55363b5eb1b99ca46bea8dda15ce7 100644 (file)
@@ -6,6 +6,7 @@
  */
 
 #nodef GITERR_CHECK_ALLOC(ptr) if (ptr == NULL) { __coverity_panic__(); }
+#nodef GITERR_CHECK_ALLOC_BUF(buf) if (buf == NULL || git_buf_oom(buf)) { __coverity_panic__(); }
 
 #nodef GITERR_CHECK_ALLOC_ADD(out, one, two) \
        if (GIT_ADD_SIZET_OVERFLOW(out, one, two)) { __coverity_panic__(); }
index bc4bdd8569b15e40bae81018a7b27b24e5a1ef92..9abd605cb83118c6109d3c346be456dc08de8f94 100644 (file)
  */
 #define GITERR_CHECK_ALLOC(ptr) if (ptr == NULL) { return -1; }
 
+/**
+ * Check a buffer allocation result, returning -1 if it failed.
+ */
+#define GITERR_CHECK_ALLOC_BUF(buf) if ((void *)(buf) == NULL || git_buf_oom(buf)) { return -1; }
+
 /**
  * Check a return value and propagate result if non-zero.
  */