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