Ignore:
Timestamp:
Feb 26, 2016, 11:18:06 AM (9 years ago)
Author:
[email protected]
Message:

Make testRegExp not crash when given an invalid regexp
https://bugs.webkit.org/show_bug.cgi?id=154732

Reviewed by Mark Lam.

  • testRegExp.cpp:

(parseRegExpLine):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/testRegExp.cpp

    r188824 r197185  
    340340    ++i;
    341341
    342     return RegExp::create(vm, pattern.toString(), regExpFlags(line + i));
     342    RegExp* r = RegExp::create(vm, pattern.toString(), regExpFlags(line + i));
     343    if (r->isValid())
     344        return r;
     345    return nullptr;
    343346}
    344347
     
    466469                if (regExpTest)
    467470                    delete regExpTest;
     471            } else if (linePtr[0] == '-') {
     472                tests++;
     473                regexp = 0; // Reset the live regexp to avoid confusing other subsequent tests
     474                bool successfullyParsed = parseRegExpLine(vm, linePtr + 1, lineLength - 1);
     475                if (successfullyParsed) {
     476                    failures++;
     477                    fprintf(stderr, "Failure on line %u. '%s' is not a valid regexp\n", lineNumber, linePtr + 1);
     478                }
    468479            }
    469480        }
Note: See TracChangeset for help on using the changeset viewer.