summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2012-05-18 15:17:25 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-19 01:45:04 +0200
commit281771ee201e591d4f40a161b93c71914b1b38f2 (patch)
treef5236138139b45cf6ee2c81dac7b0cb425472e70 /src/corelib
parent7968543bb0308395226a8847274dc3b836dd7b87 (diff)
QRegExp: fix usage of uninitialized values
A (probable) typo was causing the code dealing with anchors to use uninitialized values. This used to work by chance, but was indeed detected by Valgrind f.i. when running tst_qregexp -- the indexIn test on anc11 data reported: ==3015== Conditional jump or move depends on uninitialised value(s) ==3015== at 0x514B4EA: PeppeQt::QRegExpMatchState::testAnchor(int, int, int const*) (qregexp.cpp:1813) [...] ==3015== Uninitialised value was created by a stack allocation ==3015== at 0x514B3EB: PeppeQt::QRegExpMatchState::testAnchor(int, int, int const*) (qregexp.cpp:1803) Fixing the code also makes the aforementioned test to succeed. Change-Id: If7b3e518c1bbfcf12573d2637c33ef2eca27c4d5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/tools/qregexp.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp
index 79ceba5ceb..792b9cee4a 100644
--- a/src/corelib/tools/qregexp.cpp
+++ b/src/corelib/tools/qregexp.cpp
@@ -1839,7 +1839,7 @@ bool QRegExpMatchState::testAnchor(int i, int a, const int *capBegin)
QRegExpMatchState matchState;
matchState.prepareForMatch(ahead[j]->eng);
matchState.match(in + pos + i, len - pos - i, 0,
- true, true, matchState.caretPos - matchState.pos - i);
+ true, true, caretPos - pos - i);
if ((matchState.captured[0] == 0) == ahead[j]->neg)
return false;
}