]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
vector: Prevent NULL argument to memcpy. 34/4234/1
authorCorey Farrell <git@cfware.com>
Sun, 30 Oct 2016 18:33:12 +0000 (14:33 -0400)
committerCorey Farrell <git@cfware.com>
Sun, 30 Oct 2016 18:33:12 +0000 (14:33 -0400)
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

include/asterisk/vector.h

index 4306670e7e1c81d906eda6c7a0db839bf425f1f0..6b4e6324276f788c46de9568973cec8914bbaa7b 100644 (file)
                        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 {                                                                                        \