1. protect against PC41s with field[3] == field[2]
[spider.git] / perl / IntMsg.pm
index 8065f3024e5c693e04e7b50620a5d136e83c2a00..e3360fdbf566cf6990dda643c41a78953a3a65bd 100644 (file)
@@ -27,7 +27,7 @@ sub dequeue
 {
        my $conn = shift;
 
-       if ($conn->{msg} =~ /\n/) {
+       if ($conn && $conn->{msg} =~ /\n/) {
                my @lines = split /\r?\n/, $conn->{msg};
                if ($conn->{msg} =~ /\n$/) {
                        delete $conn->{msg};
@@ -37,11 +37,11 @@ sub dequeue
                for (@lines) {
                        if (defined $_) {
                                s/\%([0-9A-F][0-9A-F])/chr(hex($1))/eg;
-                               s/[\x00-\x08\x0a-\x1f\x80-\x9f]/./g;         # immutable CSI sequence + control characters
+                               s/[\x00-\x08\x0a-\x19\x1b-\x1f\x80-\x9f]/./g;         # immutable CSI sequence + control characters
                        } else {
                                $_ = '';
                        }
-                       &{$conn->{rproc}}($conn, $_);
+                       &{$conn->{rproc}}($conn, $_) if exists $conn->{rproc};
                }
        }
 }