The following code is accepted by the cfg parser and will run:

$xavp(test1=>stuff) = "america";   # Good
$xavp(test2->stuff) = "bahamas";  # Bad  - Hyphen instead of equals
$xavp(test3) = "cuba"; # Bad - No name given
xlog("L_WARN", "1: $xavp(test1)\n");
xlog("L_WARN", "2: $xavp(test2)\n");
xlog("L_WARN", "3: $xavp(test3)\n");
xlog("L_WARN", "4: $xavp(test1=>stuff)\n");
xlog("L_WARN", "5: $xavp(test2=>stuff)\n");
xlog("L_WARN", "6: $xavp(test3=>stuff)\n");

This prints:

1: <<xavp:0x7ff16f82c898>>
2: <null>
3: cuba
4: america
5: null
<null> or general protection fault/ core was generated......

The crash can be fixed by checking the child node type (incoming), but could there be more validation of the (x)avp variables.
I notice that $avp's can be treated as $xavps i.e. the following is accepted.
$avp(test4=>stuff) = "dominica";

Is the usage above intended to be acceptable?


Reply to this email directly or view it on GitHub.