fromwire: return NULL if array empty

libwally's API requires us to pass in NULL pointers if the array size is
zero, so we update our array from wire-er to comply with this
requirement

[ Added fix to avoid tal_resize() of NULL -- RR ]
This commit is contained in:
niftynei 2020-06-26 16:08:38 -05:00 committed by neil saitug
parent d0c85033d2
commit 77946bd9fe
2 changed files with 6 additions and 2 deletions

View File

@ -195,8 +195,9 @@ u8 *get_agreed_channelfeatures(const tal_t *ctx,
max_len = (i / 8) + 1;
}
/* Trim to length */
tal_resize(&f, max_len);
/* Trim to length (unless it's already NULL). */
if (f)
tal_resize(&f, max_len);
return f;
}

View File

@ -211,6 +211,9 @@ u8 *fromwire_tal_arrn(const tal_t *ctx,
const u8 **cursor, size_t *max, size_t num)
{
u8 *arr;
if (num == 0)
return NULL;
if (num > *max)
return fromwire_fail(cursor, max);