aboutsummaryrefslogtreecommitdiffstats
path: root/editvalues.cgi
diff options
context:
space:
mode:
authormkanat%kerio.com <>2005-03-05 09:08:35 +0000
committermkanat%kerio.com <>2005-03-05 09:08:35 +0000
commitd10ad549311736e9e57454f043c346b459b78a6c (patch)
treee849440ff08927dadf28b0f5a6494a6cdd8a200a /editvalues.cgi
parentec610fd673feb6d6e18d121b5e67aa3f87e7f4ea (diff)
downloadbugs-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-xeditvalues.cgi12
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;