From: mkanat%bugzilla.org <> Date: Mon, 23 Jun 2008 14:54:45 +0000 (+0000) Subject: Bug 157092: Implement a checking mechanism for invalid regexp (Fix the Oracle driver) X-Git-Tag: bugzilla-3.3.1~297 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4d9a13264e6ea5e6ba0fb6bcac93b7633814bed9;p=thirdparty%2Fbugzilla.git Bug 157092: Implement a checking mechanism for invalid regexp (Fix the Oracle driver) Patch By Xiaoou Wu r=mkanat, a=mkanat --- diff --git a/Bugzilla/DB/Oracle.pm b/Bugzilla/DB/Oracle.pm index 1387a45cb4..19ebbb2c58 100644 --- a/Bugzilla/DB/Oracle.pm +++ b/Bugzilla/DB/Oracle.pm @@ -94,6 +94,16 @@ sub bz_last_key { return $last_insert_id; } +sub bz_check_regexp { + my ($self, $pattern) = @_; + + eval { $self->do("SELECT 1 FROM DUAL WHERE " + . $self->sql_regexp($self->quote("a"), $self->quote($pattern), 1)) }; + + $@ && ThrowUserError('illegal_regexp', + { value => $pattern, dberror => $self->errstr }); +} + sub sql_regexp { my ($self, $expr, $pattern, $nocheck) = @_;