diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2008-05-30 21:41:05 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2008-05-30 21:41:05 +0000 |
commit | 8ba22ff48d546c5622ef74aee96415810fcbf7a0 (patch) | |
tree | 645245e71b86a0d2b86af852cda34e5dba003fc1 | |
parent | 10489e41959ba56eedd511a8c320dfec04d8f588 (diff) | |
download | perl-8ba22ff48d546c5622ef74aee96415810fcbf7a0.tar.gz |
[perl #53746] bug with index() matching beyond end of string
An off-by-one error meant that index($str,...)
was effectively being executed as index("$str\0", ...).
Probably introduced by change #26511.
p4raw-link: @26511 on //depot/perl: 4c8626beeba549aaf3f327729c56a599716ee8b7
p4raw-id: //depot/perl@33952
-rwxr-xr-x | t/op/index.t | 1 | ||||
-rw-r--r-- | util.c | 4 |
2 files changed, 2 insertions, 3 deletions
diff --git a/t/op/index.t b/t/op/index.t index 896cd12100..834814e296 100755 --- a/t/op/index.t +++ b/t/op/index.t @@ -181,7 +181,6 @@ SKIP: { my $res = $$test [$l]; { - local $::TODO = ($l == 3 && $i == 7 ? "Bug #53746" : ""); is (index ($str, $q), $res, "Find NUL character(s)"); } @@ -440,9 +440,9 @@ Perl_ninstr(pTHX_ const char *big, const char *bigend, const char *little, const if (little >= lend) return (char*)big; { - const char first = *little++; + const char first = *little; const char *s, *x; - bigend -= lend - little; + bigend -= lend - little++; OUTER: while (big <= bigend) { if (*big++ == first) { |