- AFP_ASSERT(talloc_chunk);
-
- dd->dd_talloc_array = talloc_realloc(dd, dd->dd_talloc_array, void *, talloc_array_length(dd->dd_talloc_array) + 1);
- memcpy(talloc_chunk, obj, size);
- dd->dd_talloc_array[talloc_array_length(dd->dd_talloc_array) - 1] = talloc_chunk;
+ if (talloc_chunk) {
+ /* Called from dalloc_add_copy() macro */
+ dd->dd_talloc_array = talloc_realloc(dd,
+ dd->dd_talloc_array,
+ void *,
+ talloc_array_length(dd->dd_talloc_array) + 1);
+ memcpy(talloc_chunk, obj, size);
+ dd->dd_talloc_array[talloc_array_length(dd->dd_talloc_array) - 1] = talloc_chunk;
+ } else {
+ /* Called from dalloc_add() macro */
+ dd->dd_talloc_array = talloc_realloc(dd,
+ dd->dd_talloc_array,
+ void *,
+ talloc_array_length(dd->dd_talloc_array) + 1);
+ dd->dd_talloc_array[talloc_array_length(dd->dd_talloc_array) - 1] = obj;