Blame SOURCES/perl-XML-SAX-0.99-rt20126.patch

1ae69d
diff --git a/SAX/PurePerl.pm b/SAX/PurePerl.pm
1ae69d
--- a/SAX/PurePerl.pm	2006-04-24 01:20:09.000000000 +0200
1ae69d
+++ b/SAX/PurePerl.pm	2012-08-09 12:47:48.736728516 +0200
1ae69d
@@ -595,22 +595,23 @@ sub Comment {
1ae69d
     
1ae69d
     my $data = $reader->data(4);
1ae69d
     if ($data =~ /^
1ae69d
-        $reader->move_along(4);
1ae69d
+        $reader->move_along(4); # skip comment start
1ae69d
+        $data = $reader->data;
1ae69d
+        while ($data !~ m!-->!) {
1ae69d
+            my $n = $reader->read_more;
1ae69d
+             $self->parser_error("End of data seen while looking for close comment marker", $reader)
1ae69d
+                 unless $n;
1ae69d
+            $data = $reader->data;
1ae69d
+        }
1ae69d
+
1ae69d
         my $comment_str = '';
1ae69d
-        while (1) {
1ae69d
-            my $data = $reader->data;
1ae69d
-            $self->parser_error("End of data seen while looking for close comment marker", $reader)
1ae69d
-                unless length($data);
1ae69d
-            if ($data =~ /^(.*?)-->/s) {
1ae69d
-                $comment_str .= $1;
1ae69d
-                $self->parser_error("Invalid comment (dash)", $reader) if $comment_str =~ /-$/;
1ae69d
-                $reader->move_along(length($1) + 3);
1ae69d
-                last;
1ae69d
-            }
1ae69d
-            else {
1ae69d
-                $comment_str .= $data;
1ae69d
-                $reader->move_along(length($data));
1ae69d
-            }
1ae69d
+        if ($data =~ /^(.*?)-->/s) {
1ae69d
+            $comment_str = $1;
1ae69d
+            $self->parser_error("Invalid comment (dash)", $reader) if $comment_str =~ /-$/;
1ae69d
+            $reader->move_along(length($1) + 3);
1ae69d
+        }
1ae69d
+        else {
1ae69d
+            return 0;
1ae69d
         }
1ae69d
         
1ae69d
         $self->comment({ Data => $comment_str });