common/utils.c: Correctly handle NULL taken pointer in tal_dup_talarr.

Fixes: #3757

Reported-by: @sumBTC

Changelog-None
This commit is contained in:
ZmnSCPxj jxPCSnmZ
2020-06-22 12:15:42 +08:00
committed by Rusty Russell
parent a25af262e9
commit c100de6d93
2 changed files with 5 additions and 3 deletions

View File

@@ -142,9 +142,12 @@ void tal_arr_remove_(void *p, size_t elemsize, size_t n)
tal_resize((char **)p, len - elemsize);
}
void *tal_dup_talarr_(const tal_t *ctx, const tal_t *src, const char *label)
void *tal_dup_talarr_(const tal_t *ctx, const tal_t *src TAKES, const char *label)
{
if (!src)
if (!src) {
/* Correctly handle TAKES on a NULL `src`. */
(void) taken(src);
return NULL;
}
return tal_dup_(ctx, src, 1, tal_bytelen(src), 0, label);
}