diff options
author | mkanat%kerio.com <> | 2005-03-05 09:08:35 +0000 |
---|---|---|
committer | mkanat%kerio.com <> | 2005-03-05 09:08:35 +0000 |
commit | d10ad549311736e9e57454f043c346b459b78a6c (patch) | |
tree | e849440ff08927dadf28b0f5a6494a6cdd8a200a /editvalues.cgi | |
parent | ec610fd673feb6d6e18d121b5e67aa3f87e7f4ea (diff) | |
download | bugs-d10ad549311736e9e57454f043c346b459b78a6c.tar bugs-d10ad549311736e9e57454f043c346b459b78a6c.tar.gz bugs-d10ad549311736e9e57454f043c346b459b78a6c.tar.bz2 bugs-d10ad549311736e9e57454f043c346b459b78a6c.tar.xz bugs-d10ad549311736e9e57454f043c346b459b78a6c.zip |
Bug 284838: editvalues.cgi does not use $dbh->bz_(un)lock_tables
Patch By Max Kanat-Alexander <mkanat@kerio.com> r=LpSolit, a=justdave
Diffstat (limited to 'editvalues.cgi')
-rwxr-xr-x | editvalues.cgi | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/editvalues.cgi b/editvalues.cgi index 8231dab5b..4a99efab8 100755 --- a/editvalues.cgi +++ b/editvalues.cgi @@ -253,6 +253,8 @@ if ($action eq 'delete') { trick_taint($field); trick_taint($value); + $dbh->bz_lock_tables('bugs READ', "$field WRITE"); + # Check if there are any bugs that still have this value. my $bug_ids = $dbh->selectcol_arrayref( "SELECT bug_id FROM bugs WHERE $field = ?", undef, $value); @@ -260,7 +262,6 @@ if ($action eq 'delete') { if (scalar(@$bug_ids)) { # You tried to delete a field that bugs are still using. # You can't just delete the bugs. That's ridiculous. - $dbh->do('UNLOCK TABLES'); ThrowUserError("fieldvalue_still_has_bugs", { field => $field, value => $value, count => scalar(@$bug_ids) }); @@ -268,6 +269,8 @@ if ($action eq 'delete') { $dbh->do("DELETE FROM $field WHERE value = ?", undef, $value); + $dbh->bz_unlock_tables(); + unlink "$datadir/versioncache"; $vars->{'value'} = $value; @@ -318,7 +321,7 @@ if ($action eq 'update') { {'value' => $value}); } - $dbh->do("LOCK TABLES bugs WRITE, $field WRITE"); + $dbh->bz_lock_tables('bugs WRITE', "$field WRITE"); # Need to store because detaint_natural() will delete this if # invalid @@ -326,7 +329,6 @@ if ($action eq 'update') { if ($sortkey != $sortkeyold) { if (!detaint_natural($sortkey)) { - $dbh->do('UNLOCK TABLES'); ThrowUserError('fieldvalue_sortkey_invalid', {'name' => $field, 'sortkey' => $stored_sortkey}); @@ -344,11 +346,9 @@ if ($action eq 'update') { if ($value ne $valueold) { unless ($value) { - $dbh->do('UNLOCK TABLES'); ThrowUserError('fieldvalue_undefined'); } if (ValueExists($field, $value)) { - $dbh->do('UNLOCK TABLES'); ThrowUserError('fieldvalue_already_exists', {'value' => $value, 'field' => $field}); @@ -366,7 +366,7 @@ if ($action eq 'update') { $vars->{'updated_value'} = 1; } - $dbh->do('UNLOCK TABLES'); + $dbh->bz_unlock_tables(); $vars->{'value'} = $value; $vars->{'field'} = $field; |