util/mkdef.pl: handle line terminators correctly
authorRichard Levitte <levitte@openssl.org>
Thu, 31 Aug 2017 09:35:25 +0000 (11:35 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 31 Aug 2017 17:20:30 +0000 (19:20 +0200)
When parsing the header files, mkdef.pl didn't clear the line
terminator properly.  In most cases, this didn't matter, but there
were moments when this caused parsing errors (such as CRLFs in certain
cases).

Fixes #4267

Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4304)

util/mkdef.pl

index 8c0ccd0..7a4e455 100755 (executable)
@@ -412,10 +412,10 @@ sub do_defs
 
                print STDERR "DEBUG: parsing ----------\n" if $debug;
                while(<IN>) {
+                       s|\R$||; # Better chomp
                        if($parens > 0) {
                                #Inside a DEPRECATEDIN
                                $stored_multiline .= $_;
-                               $stored_multiline =~ s|\R$||; # Better chomp
                                print STDERR "DEBUG: Continuing multiline DEPRECATEDIN: $stored_multiline\n" if $debug;
                                $parens = count_parens($stored_multiline);
                                if ($parens == 0) {
@@ -847,7 +847,6 @@ sub do_defs
                                                        \@current_algorithms);
                                        } else {
                                                $stored_multiline = $_;
-                                               $stored_multiline =~ s|\R$||;
                                                print STDERR "DEBUG: Found multiline DEPRECATEDIN starting with: $stored_multiline\n" if $debug;
                                                next;
                                        }