patch: kjs regexp leak fix
Maciej Stachowiak
mjs at apple.com
Mon Nov 3 23:49:21 CET 2003
Fixes a leak when doing regexp matching on strings:
-------------- next part --------------
Index: ChangeLog
===================================================================
RCS file: /local/home/cvs/Labyrinth/JavaScriptCore/ChangeLog,v
retrieving revision 1.372
diff -u -p -r1.372 ChangeLog
--- ChangeLog 2003/10/30 18:42:38 1.372
+++ ChangeLog 2003/10/30 20:53:37
@@ -1,3 +1,13 @@
+2003-10-30 Maciej Stachowiak <mjs at apple.com>
+
+ Reviewed by NOBODY (OOPS!).
+
+ - fixed 3427069 - browsing mp3.com causes leaks (KJS)
+
+ * kjs/string_object.cpp:
+ (StringProtoFuncImp::call): Don't do an early return, since that
+ could leak a temporary regexp.
+
2003-10-29 Maciej Stachowiak <mjs at apple.com>
Reviewed by Darin.
Index: kjs/string_object.cpp
===================================================================
RCS file: /local/home/cvs/Labyrinth/JavaScriptCore/kjs/string_object.cpp,v
retrieving revision 1.17
diff -u -p -r1.17 kjs/string_object.cpp
--- kjs/string_object.cpp 2003/08/08 15:21:12 1.17
+++ kjs/string_object.cpp 2003/10/30 20:53:37
@@ -276,10 +276,12 @@ Value StringProtoFuncImp::call(ExecState
// Exec
if ((reg->flags() & RegExp::Global) == 0) {
// case without 'g' flag is handled like RegExp.prototype.exec
- if (mstr.isNull())
- return Null(); // no match
- regExpObj->setSubPatterns(reg->subPatterns());
- result = regExpObj->arrayOfMatches(exec,mstr);
+ if (mstr.isNull()) {
+ result = Null();
+ } else {
+ regExpObj->setSubPatterns(reg->subPatterns());
+ result = regExpObj->arrayOfMatches(exec,mstr);
+ }
} else {
// return array of matches
List list;
-------------- next part --------------
More information about the Khtml-devel
mailing list