diff options
author | Edward Thomson <ethomson@microsoft.com> | 2015-09-28 16:24:50 -0400 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2015-10-05 22:59:36 +0200 |
commit | 4bc9b74c14cd2d37de12295cc6ebfd90274e222b (patch) | |
tree | d499a9cc1f02335f7894b9b7df6fbd7b2418896e | |
parent | a99f33e9b05504ea5eccd9c9210cd4a9e8d11695 (diff) | |
download | libgit2-4bc9b74c14cd2d37de12295cc6ebfd90274e222b.tar.gz |
GITERR_CHECK_ALLOC_ADDn: multi-arg adders
-rw-r--r-- | src/common.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/common.h b/src/common.h index 6dca36fbd..7170df91a 100644 --- a/src/common.h +++ b/src/common.h @@ -208,6 +208,15 @@ GIT_INLINE(void) git__init_structure(void *structure, size_t len, unsigned int v #define GITERR_CHECK_ALLOC_ADD(out, one, two) \ if (GIT_ADD_SIZET_OVERFLOW(out, one, two)) { return -1; } +#define GITERR_CHECK_ALLOC_ADD3(out, one, two, three) \ + if (GIT_ADD_SIZET_OVERFLOW(out, one, two) || \ + GIT_ADD_SIZET_OVERFLOW(out, *(out), three)) { return -1; } + +#define GITERR_CHECK_ALLOC_ADD4(out, one, two, three, four) \ + if (GIT_ADD_SIZET_OVERFLOW(out, one, two) || \ + GIT_ADD_SIZET_OVERFLOW(out, *(out), three) || \ + GIT_ADD_SIZET_OVERFLOW(out, *(out), four)) { return -1; } + /** Check for multiplicative overflow, failing if it would occur. */ #define GITERR_CHECK_ALLOC_MULTIPLY(out, nelem, elsize) \ if (GIT_MULTIPLY_SIZET_OVERFLOW(out, nelem, elsize)) { return -1; } |