Subject: | Unknown vendor attribute 429/36900 for unpack() and infinite loop |
It seems like Net::Radius::Packet->new is causing my program to get
stuck in an infinite loop if the packet contains certain unrecognized
attributes.
I worked-around the problem here by making the following change:
--- Net-Radius-1.53.orig/Radius/Packet.pm 2007-01-30
05:25:23.000000000 -0500
+++ Net-Radius-1.53/Radius/Packet.pm 2007-04-12 11:08:55.000000000 -0400
@@ -587,11 +587,11 @@
= (defined $dict->vsattr_numtype($vid, $vtype)) ?
"Garbled":"Unknown";
warn "$whicherr vendor attribute $vid/$vtype for
unpack()\n"
unless $unkvprinted{"$vid/$vtype"};
$unkvprinted{"$vid/$vtype"} = 1;
- substr($value, 0, $vlength) = ""; # Skip this section
+ $value = ""; #skip the entire VSA
next;
}
my ($val, $tag) =
&{$vsaunpacker{$dict->vsattr_numtype($vid,
$vtype)}}($vvalue,
$vtype,
Sorry, I can't really be more helpful than that. After making this
change, I can't read any of the attributes coming back, but I was only
interested in whether it was an "Accept" or "Reject" so that's ok.
Jason