]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 157092: Implement a checking mechanism for invalid regexp (Fix the Oracle driver)
authormkanat%bugzilla.org <>
Mon, 23 Jun 2008 14:54:45 +0000 (14:54 +0000)
committermkanat%bugzilla.org <>
Mon, 23 Jun 2008 14:54:45 +0000 (14:54 +0000)
Patch By Xiaoou Wu <xiaoou.wu@oracle.com> r=mkanat, a=mkanat

Bugzilla/DB/Oracle.pm

index 1387a45cb40f013ab893a2b02e9cc6397c40ad2a..19ebbb2c586e4b858950c0920253f398dfd8b4ed 100644 (file)
@@ -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) = @_;