made all protocol except PC29 reject %xx characters
[spider.git] / perl / DXProt.pm
index 30b1b27899a773acd6c12930719acf8e6377d73c..7d429b1b7c3aa74375294b23169721742863f2c6 100644 (file)
@@ -149,7 +149,13 @@ sub normal
        my ($pcno) = $field[0] =~ /^PC(\d\d)/; # just get the number
        return unless $pcno;
        return if $pcno < 10 || $pcno > 51;
-       
+
+       # dump bad protocol messages unless it is a PC29
+       if ($line =~ /\%[0-9A-F][0-9A-F]/o && $pcno != 29) {
+               dbg('chan', "CORRUPT protocol message - dumped");
+               return;
+       }
+
        # local processing 1
        my $pcr;
        eval {