ssize_t rcode;
uint32_t vendor;
fr_dict_attr_t const *child;
- VALUE_PAIR *vp;
+ VALUE_PAIR *vp = NULL;
uint8_t const *p = data;
uint8_t buffer[256];
fr_radius_ctx_t *packet_ctx = decoder_ctx;
default:
raw:
+ if (vp) fr_pair_list_free(&vp);
+
/*
* Re-write the attribute to be "raw". It is
* therefore of type "octets", and will be
case FR_TYPE_IFID:
case FR_TYPE_SIZE:
if (fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da, p, data_len, true) < 0) {
+ fr_pair_list_free(&vp);
+
/*
* Paranoid loop prevention
*/
if (vp->da->flags.is_unknown) {
- talloc_free(vp);
return -1;
}
goto raw;