summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2016-10-30 14:33:12 -0400
committerCorey Farrell <git@cfware.com>2016-10-30 14:33:12 -0400
commit30b1bc77d2cfea0a593ecead8e392e468b40430c (patch)
treed96f19a83383bd34cabbce6cf88c35804fb0bd39
parent6b1c55dc9be90904363dbcf958a9fcc243c85629 (diff)
vector: Prevent NULL argument to memcpy.
Headers declare that memcpy does not accept NULL argument for the first two parameters. Add a conditional block to prevent memcpy and ast_free from running on vectors with NULL element array. ASTERISK-26526 #close Change-Id: I988a476bb5fcfcbd3f6d6c6b3e7769e4f9629b71
-rw-r--r--include/asterisk/vector.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/asterisk/vector.h b/include/asterisk/vector.h
index 4306670e7..6b4e63242 100644
--- a/include/asterisk/vector.h
+++ b/include/asterisk/vector.h
@@ -172,9 +172,11 @@
typeof((vec)->elems) new_elems = ast_calloc(1, \
new_max * sizeof(*new_elems)); \
if (new_elems) { \
- memcpy(new_elems, (vec)->elems, \
- (vec)->current * sizeof(*new_elems)); \
- ast_free((vec)->elems); \
+ if ((vec)->elems) { \
+ memcpy(new_elems, (vec)->elems, \
+ (vec)->current * sizeof(*new_elems)); \
+ ast_free((vec)->elems); \
+ } \
(vec)->elems = new_elems; \
(vec)->max = new_max; \
} else { \