diff options
author | Corey Farrell <git@cfware.com> | 2016-10-30 14:33:12 -0400 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2016-10-30 13:46:19 -0500 |
commit | 273debd261148dcc0962566d83ee9c601ee5c99c (patch) | |
tree | 7a6c7bb6f78cbf66c5d86c106030c08e05a64232 /include/asterisk/vector.h | |
parent | 12bdde6a6cab0c88845c100764105ca8e44baa43 (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
Diffstat (limited to 'include/asterisk/vector.h')
-rw-r--r-- | include/asterisk/vector.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/asterisk/vector.h b/include/asterisk/vector.h index c74f0a89b..83732e7c8 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 { \ |