libotutil: avoid leaking builder memory on error

This swaps the order of a couple of input sanity checks, in order
to fix a minor memory leak due to an early-return on the error
path.
Memory for the result is now allocated only after input has been
sanity-checked.
It fixes a static analysis warning highlighted by Coverity.
This commit is contained in:
Luca BRUNO 2022-01-10 09:30:11 +00:00
parent 6cb097fb5e
commit 0b1a085692
No known key found for this signature in database
GPG Key ID: A9834A2252078E4E
1 changed files with 4 additions and 4 deletions

View File

@ -760,10 +760,10 @@ ot_variant_builder_info_new (OtVariantBuilder *builder, const GVariantType *type
{
OtVariantBuilderInfo *info;
info = (OtVariantBuilderInfo *) g_slice_new0 (OtVariantBuilderInfo);
g_return_val_if_fail (g_variant_type_is_container (type), NULL);
info = (OtVariantBuilderInfo *) g_slice_new0 (OtVariantBuilderInfo);
info->builder = builder;
info->type = g_variant_type_copy (type);
info->type_info = g_variant_type_info_get (type);
@ -845,10 +845,10 @@ ot_variant_builder_new (const GVariantType *type,
{
OtVariantBuilder *builder;
builder = (OtVariantBuilder *) g_slice_new0 (OtVariantBuilder);
g_return_val_if_fail (g_variant_type_is_container (type), NULL);
builder = (OtVariantBuilder *) g_slice_new0 (OtVariantBuilder);
builder->head = ot_variant_builder_info_new (builder, type);
builder->ref_count = 1;
builder->fd = fd;