From 14a9306e7d088455bd63bbf4ef65866e74f05ce2 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Mon, 2 Apr 2012 22:50:40 +0000 Subject: [PATCH] build/i18n-scan.pl: avoid a possible endless loop Issuing './build/i18n-scan.pl libs/core/' leads to this endless loop with some perl implementations: <...> Use of uninitialized value in concatenation (.) or string at../build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. Use of uninitialized value in concatenation (.) or string at ./build/i18n-scan.pl line 69. substr outside of string at ./build/i18n-scan.pl line 69. <...> Experienced with this perl version: "This is perl, v5.8.8 built for i386-linux" Fix it by undefining the 'sub' variable if it is an empty string. Signed-off-by: Gabor Juhos --- build/i18n-scan.pl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/i18n-scan.pl b/build/i18n-scan.pl index 880738402..3f7327109 100755 --- a/build/i18n-scan.pl +++ b/build/i18n-scan.pl @@ -64,6 +64,10 @@ if( open F, "find @ARGV -type f '(' -name '*.htm' -o -name '*.lua' ')' |" ) { ( $sub, $code ) = extract_delimited($code, q{'"}, q{\s*(?:\.\.\s*)?}); + if( length($sub) < 1 ) { + undef $sub; + } + if( defined $sub ) { $res .= substr $sub, 1, length($sub) - 2; -- 2.11.0