Commit b1a24eeb authored by mkanat%bugzilla.org's avatar mkanat%bugzilla.org

Bug 372533: Bugzilla::Object->update throws a warning if some values are undefined

Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, a=LpSolit
parent ae185749
......@@ -173,15 +173,23 @@ sub update {
my (@update_columns, @values, %changes);
foreach my $column ($self->UPDATE_COLUMNS) {
if ($old_self->{$column} ne $self->{$column}) {
my $value = $self->{$column};
trick_taint($value) if defined $value;
push(@values, $value);
my ($old, $new) = ($old_self->{$column}, $self->{$column});
# This has to be written this way in order to allow us to set a field
# from undef or to undef, and avoid warnings about comparing an undef
# with the "eq" operator.
if (!defined $new || !defined $old) {
next if !defined $new && !defined $old;
}
elsif ($old eq $new) {
next;
}
trick_taint($new) if defined $new;
push(@values, $new);
push(@update_columns, $column);
# We don't use $value because we don't want to detaint this for
# We don't use $new because we don't want to detaint this for
# the caller.
$changes{$column} = [$old_self->{$column}, $self->{$column}];
}
$changes{$column} = [$old, $self->{$column}];
}
my $columns = join(', ', map {"$_ = ?"} @update_columns);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment