diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2012-04-02 22:50:40 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2012-04-02 22:50:40 +0000 |
commit | 14a9306e7d088455bd63bbf4ef65866e74f05ce2 (patch) | |
tree | 9734c698ca895e7627042d59364e0f1fe7026d1a /build | |
parent | c8b7a97580a0875c0f5fdded4fa5bf556cac35e0 (diff) |
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 <juhosg@openwrt.org>
Diffstat (limited to 'build')
-rwxr-xr-x | build/i18n-scan.pl | 4 |
1 files changed, 4 insertions, 0 deletions
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; |