Commit 1414db6b authored by mkanat%kerio.com's avatar mkanat%kerio.com

Bug 282748: uninitialized value in localtime in Format.pm

Patch By Frederic Buclin <LpSolit@gmail.com> r=wurblzap, a=myk
parent 94c2df0e
...@@ -201,7 +201,9 @@ sub ProcessOneBug($) { ...@@ -201,7 +201,9 @@ sub ProcessOneBug($) {
} }
$values{'estimated_time'} = format_time_decimal($values{'estimated_time'}); $values{'estimated_time'} = format_time_decimal($values{'estimated_time'});
if ($values{'deadline'}) {
$values{'deadline'} = time2str("%Y-%m-%d", str2time($values{'deadline'})); $values{'deadline'} = time2str("%Y-%m-%d", str2time($values{'deadline'}));
}
my @dependslist; my @dependslist;
SendSQL("SELECT dependson FROM dependencies WHERE SendSQL("SELECT dependson FROM dependencies WHERE
...@@ -262,10 +264,6 @@ sub ProcessOneBug($) { ...@@ -262,10 +264,6 @@ sub ProcessOneBug($) {
WHERE attach_id = $attachid"); WHERE attach_id = $attachid");
$diffpart->{'isprivate'} = FetchOneColumn(); $diffpart->{'isprivate'} = FetchOneColumn();
} }
if( $fieldname eq 'deadline' ) {
$old = time2str("%Y-%m-%d", str2time($old));
$new = time2str("%Y-%m-%d", str2time($new));
}
$difftext = FormatTriple($what, $old, $new); $difftext = FormatTriple($what, $old, $new);
$diffpart->{'header'} = $diffheader; $diffpart->{'header'} = $diffheader;
$diffpart->{'fieldname'} = $fieldname; $diffpart->{'fieldname'} = $fieldname;
......
...@@ -277,14 +277,17 @@ sub file_mod_time ($) { ...@@ -277,14 +277,17 @@ sub file_mod_time ($) {
sub ValidateDate { sub ValidateDate {
my ($date, $format) = @_; my ($date, $format) = @_;
my $date2;
# $ts is undefined if the parser fails.
my $ts = str2time($date); my $ts = str2time($date);
my $date2 = time2str("%Y-%m-%d", $ts); if ($ts) {
$date2 = time2str("%Y-%m-%d", $ts);
$date =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/; $date =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/;
$date2 =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/; $date2 =~ s/(\d+)-0*(\d+?)-0*(\d+?)/$1-$2-$3/;
}
if ($date ne $date2) { if (!$ts || $date ne $date2) {
ThrowUserError('illegal_date', {date => $date, format => $format}); ThrowUserError('illegal_date', {date => $date, format => $format});
} }
} }
......
...@@ -396,11 +396,6 @@ sub GetBugActivity { ...@@ -396,11 +396,6 @@ sub GetBugActivity {
$changes = []; $changes = [];
} }
if ($fieldname eq 'deadline') {
$removed = time2str("%Y-%m-%d", str2time($removed));
$added = time2str("%Y-%m-%d", str2time($added));
}
$operation->{'who'} = $who; $operation->{'who'} = $who;
$operation->{'when'} = $when; $operation->{'when'} = $when;
......
...@@ -1768,6 +1768,16 @@ foreach my $id (@idlist) { ...@@ -1768,6 +1768,16 @@ foreach my $id (@idlist) {
$check_dep_bugs = 1; $check_dep_bugs = 1;
} }
# Convert deadlines to the YYYY-MM-DD format. We use an
# intermediate $xxxtime to prevent errors in the web
# server log file when str2time($xxx) is undefined.
if ($col eq 'deadline') {
my $oldtime = str2time($old);
$old = ($oldtime) ? time2str("%Y-%m-%d", $oldtime) : '';
my $newtime = str2time($new);
$new = ($newtime) ? time2str("%Y-%m-%d", $newtime) : '';
}
LogActivityEntry($id,$col,$old,$new,$whoid,$timestamp); LogActivityEntry($id,$col,$old,$new,$whoid,$timestamp);
$bug_changed = 1; $bug_changed = 1;
} }
......
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