if (!struct_vp) {
return PAIR_DECODE_OOM;
}
+ PAIR_ALLOCED(struct_vp);
fr_pair_list_init(&child_list_head); /* still used elsewhere */
child_list = &struct_vp->vp_group;
talloc_free(struct_vp);
return PAIR_DECODE_OOM;
}
+ PAIR_ALLOCED(vp);
switch (child->type) {
case FR_TYPE_BOOL:
*/
vp = fr_pair_afrom_da(child_ctx, child);
if (!vp) goto oom;
+ PAIR_ALLOCED(vp);
fr_pair_append(child_list, vp);
substruct_da = child;
fr_strerror_const_push("Out of memory");
return -1;
}
+ PAIR_ALLOCED(vp);
if (unlikely(fr_der_decode_pair_dbuff(vp, &vp->vp_group, child, &our_in, decode_ctx) < 0)) {
fr_strerror_printf_push("Failed decoding %s", vp->da->name);
fr_strerror_const_push("Out of memory");
return -1;
}
+ PAIR_ALLOCED(vp);
/*
* Critical extensions are decoded into the Critical parent.
talloc_free(vp);
goto oom;
}
+ PAIR_ALLOCED(vp2);
max = fr_der_flag_max(parent); /* Maximum number of extensions which can be used here */
fr_strerror_const_push("Out of memory");
return -1;
}
+ PAIR_ALLOCED(vp);
if (unlikely(fr_pair_value_bstr_alloc(vp, &str, len, false) < 0)) {
talloc_free(vp);
fr_strerror_const_push("Out of memory");
return -1;
}
+ PAIR_ALLOCED(vp);
if (unlikely(fr_value_box_copy(vp, &vp->data, flags->default_value) < 0)) {
talloc_free(vp);
vp = fr_pair_afrom_da(ctx, da);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
/*
* string / octets / bool can be empty. Other data types are
if (!vp) {
vp = fr_pair_afrom_da(ctx, vendor);
if (!vp) return PAIR_DECODE_FATAL_ERROR;
+ PAIR_ALLOCED(vp);
fr_pair_append(out, vp);
}
if (!vp) {
vp = fr_pair_afrom_da(ctx, da);
if (!vp) return PAIR_DECODE_FATAL_ERROR;
+ PAIR_ALLOCED(vp);
append = true;
}
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, parent->parent,
&FR_DBUFF_TMP(data, 2), 2, true);
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
vp->vp_ip.af = AF_INET6;
vp->vp_ip.scope_id = 0;
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
vp->vp_ip.af = AF_INET6;
slen = 1;
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
vp->vp_ip.af = AF_INET6;
vp->vp_ip.prefix = prefix_len;
if (data_len != 0) goto raw;
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
+
vp->vp_bool = true;
slen = 0;
break;
case FR_TYPE_DATE:
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da,
&FR_DBUFF_TMP(data, data_len), data_len, true);
case FR_TYPE_GROUP:
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
ref = fr_dict_attr_ref(parent);
if (ref && (ref->dict != dict_dhcpv6)) {
case FR_TYPE_IPV6_ADDR:
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
/*
* Limit the IPv6 address to 16 octets, with no scope.
default:
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
slen = fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da,
&FR_DBUFF_TMP(data, data_len), data_len, true);
vp = fr_pair_afrom_da(ctx, attr_relay_message);
if (!vp) return PAIR_DECODE_FATAL_ERROR;
+ PAIR_ALLOCED(vp);
slen = fr_dhcpv6_decode(vp, &vp->vp_group, data + 4, len);
if (slen < 0) {
if (!vp) {
vp = fr_pair_afrom_da(ctx, da);
if (!vp) return PAIR_DECODE_FATAL_ERROR;
+ PAIR_ALLOCED(vp);
append = true;
}
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
vp->vp_ip.af = AF_INET6;
vp->vp_ip.prefix = data[0];
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
vp->vp_ip.af = AF_INET6;
break;
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
vp->vp_ip.af = AF_INET6;
vp->vp_ip.prefix = prefix_len;
if (data_len != 0) goto raw;
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
+
vp->vp_bool = true;
break;
default:
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
if (fr_value_box_from_network(vp, &vp->data, vp->vp_type, vp->da,
&FR_DBUFF_TMP(data, data_len), data_len, true) < 0) {
vp = fr_pair_afrom_da(ctx, parent_da);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
/*
* Zero length is fine here
vp = fr_pair_afrom_da(ctx, parent_da);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
/*
* Decode all the children of this group
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return -1;
+ PAIR_ALLOCED(vp);
if (fr_pair_value_mem_alloc(vp, &p, total, true) != 0) {
talloc_free(vp);
talloc_free(buffer);
return -1;
}
+ PAIR_ALLOCED(vp);
if (fr_pair_value_bstrndup(vp, (char const *) decode, len, true) != 0) {
talloc_free(buffer);
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
redo:
FR_PROTO_HEX_DUMP(p, end - p, "decode_digest_attributes");
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return PAIR_DECODE_OOM;
+ PAIR_ALLOCED(vp);
/*
* Record where we were in the list when this function was called
group = fr_pair_afrom_da(packet_ctx->tag_root_ctx, group_da);
if (unlikely(!group)) goto tag_alloc_error;
+ PAIR_ALLOCED(group);
packet_ctx->tags[tag]->parent = group;
vp = fr_pair_afrom_da(ctx, parent);
if (!vp) return -1;
+ PAIR_ALLOCED(vp);
ret = proto->decode(vp, &vp->vp_group, p, attr_len);
if (ret < 0) goto raw;
vp = fr_pair_afrom_da_nested(packet_ctx->tags[tag]->parent, &packet_ctx->tags[tag]->parent->vp_group, parent);
}
if (!vp) return -1;
+ PAIR_ALLOCED(vp);
switch (parent->type) {
/*
*/
vp = fr_pair_afrom_da(ctx, da);
if (!vp) return -1;
+ PAIR_ALLOCED(vp);
/*
* Ensure that it has a value.
return -1;
}
- PAIR_ALLOCED(vp);
fr_pair_append(out, vp);
return 2;
fr_strerror_const("Failed creating Packet-Type");
return -1;
}
+ PAIR_ALLOCED(vp);
+
vp->vp_uint32 = data[0];
fr_pair_append(out, vp);
fr_strerror_const("Failed creating Packet-Authentication-Vector");
return -1;
}
+ PAIR_ALLOCED(vp);
+
(void) fr_pair_value_memdup(vp, data + 4, 16, true);
fr_pair_append(out, vp);
#define DECODE_FIELD_UINT8(_da, _field) do { \
vp = fr_pair_afrom_da(ctx, _da); \
if (!vp) goto fail; \
+ PAIR_ALLOCED(vp); \
vp->vp_uint8 = _field; \
fr_pair_append(out, vp); \
} while (0)
if (!vendor) {
vendor = fr_pair_afrom_da(ctx, parent);
if (!vendor) return -1;
+ PAIR_ALLOCED(vendor);
append = true;
}
if (da) {
vp = fr_pair_afrom_da(ctx, da);
if (!vp) goto oom;
+ PAIR_ALLOCED(vp);
dst = out;
goto decode;
vp = fr_pair_afrom_da(vendor, da);
if (!vp) goto oom;
+ PAIR_ALLOCED(vp);
dst = &vendor->vp_group;
}
return -1;
}
+ PAIR_ALLOCED(vp);
value = p;
arg_end = p + argv[i];
fr_strerror_const("Out of Memory");
return -1;
}
+ PAIR_ALLOCED(vp);
if (field_len) {
if (da->type == FR_TYPE_STRING) {
vp = fr_pair_afrom_da(ctx, da);
if (!vp) goto fail;
+ PAIR_ALLOCED(vp);
fr_pair_append(out, vp);
*/
vp = fr_pair_afrom_da(ctx, challenge);
if (!vp) goto fail;
+ PAIR_ALLOCED(vp);
fr_pair_append(out, vp);