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
This commit is contained in:
Corey Farrell 2016-10-30 14:33:12 -04:00
parent 12bdde6a6c
commit 273debd261
1 changed files with 5 additions and 3 deletions

View File

@ -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 { \