} else {
if (unlikely(fr_value_box_copy(vpt, tmpl_value(vpt), data) < 0)) goto error;
}
+
+ TMPL_VERIFY(vpt);
*out = vpt;
return 0;
vpt->quote = T_BARE_WORD;
TMPL_ATTR_VERIFY(vpt);
-
*out = vpt;
return 0;
}
}
- TMPL_VERIFY(vpt); /* Because we want to ensure we produced something sane */
-
+ TMPL_VERIFY(vpt);
*out = vpt;
+
FR_SBUFF_SET_RETURN(name, &our_name);
}
fr_value_box_copy_shallow(NULL, tmpl_value(vpt), &tmp);
- *out = vpt;
-
if (cast == tmpl_value_type(vpt)) vpt->rules.cast = FR_TYPE_NULL;
TMPL_VERIFY(vpt);
+ *out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
}
fr_sbuff_start(&our_in), fr_sbuff_used(&our_in)));
fr_value_box_init(&vpt->data.literal, FR_TYPE_NULL, NULL, false);
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
fr_value_box_init(&vpt->data.literal, FR_TYPE_BOOL, NULL, false);
vpt->data.literal.vb_bool = a_bool;
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
MEM(bin = talloc_realloc_size(vpt, bin, binlen)); /* Realloc to the correct length */
(void)fr_value_box_memdup_shallow(&vpt->data.literal, NULL, bin, binlen, false);
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
}
vpt->data.literal.vb_ipv4addr = htonl(ipaddr);
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
talloc_free(vpt);
goto error;
}
+
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
fr_value_box_init(vb, FR_TYPE_ETHERNET, NULL, false);
memcpy(vb->vb_ether, buff, sizeof(vb->vb_ether));
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
}
}
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
fr_value_box_init(vb, FR_TYPE_FLOAT64, NULL, false);
vb->vb_float64 = a_float;
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
fr_value_box_init(vb, FR_TYPE_TIME_DELTA, NULL, false);
vb->vb_time_delta = a_delta;
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
}
vpt->data.literal.enumv = t_rules->enumv;
+ TMPL_VERIFY(vpt);
*out = vpt;
+
FR_SBUFF_SET_RETURN(in, &our_in);
}
}
tmpl_init(vpt, TMPL_TYPE_DATA_UNRESOLVED, T_BARE_WORD,
fr_sbuff_start(&our_in), fr_sbuff_used(&our_in), t_rules);
MEM(vpt->data.unescaped = talloc_bstrndup(vpt, fr_sbuff_start(enum_buff), fr_sbuff_used(enum_buff)));
+
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
vpt->data.xlat.ex = head;
}
- *out = vpt;
-
TMPL_VERIFY(vpt);
+ *out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
}
tmpl_init(vpt, TMPL_TYPE_DATA_UNRESOLVED, quote,
fr_sbuff_start(&our_in), fr_sbuff_used(&our_in), t_rules);
vpt->data.unescaped = str;
+
+ TMPL_VERIFY(vpt);
*out = vpt;
FR_SBUFF_SET_RETURN(in, &our_in);
"has a NULL xlat.ex field", file, line);
}
+ XLAT_HEAD_VERIFY(tmpl_xlat(vpt));
break;
/* @todo When regexes get converted to xlat the flags field of the regex union is used
*/
case TMPL_TYPE_EXEC:
+ XLAT_HEAD_VERIFY(tmpl_xlat(vpt));
+ break;
+
case TMPL_TYPE_EXEC_UNRESOLVED:
/* tmpl_xlat(vpt) can be initialized */
break;
break;
}
+ VALUE_BOX_VERIFY(tmpl_value(vpt));
break;
- case TMPL_TYPE_REGEX_UNCOMPILED:
case TMPL_TYPE_REGEX_XLAT:
+#ifdef HAVE_REGEX
+ XLAT_HEAD_VERIFY(tmpl_xlat(vpt));
+ break;
+#endif
+
+
+ case TMPL_TYPE_REGEX_UNCOMPILED:
case TMPL_TYPE_REGEX_XLAT_UNRESOLVED:
#ifndef HAVE_REGEX
fr_fatal_assert_fail("CONSISTENCY CHECK FAILED %s[%u]: TMPL_TYPE_REGEX_XLAT_UNRESOLVED - No regex support",