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:21:15 +0000 (19:21 +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)

(cherry picked from commit e66b62b86e7725bdace0f24a76baa61db9c763f8)

util/mkdef.pl

index b0571157bd122ca5a2e04a51e14fbe2ce4e49ac6..5fb2f855d255ffb90ed4b1743cb32d6bc5f0d5de 100755 (executable)
@@ -458,10 +458,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) {
@@ -875,7 +875,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;
                                        }