Skip to content

Commit 8333719

Browse files
authored
Merge pull request #4959 from bjoroen/report_overflow_error
Report overflow error
2 parents f3e4d34 + fa30d33 commit 8333719

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

vm/src/stdlib/time.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -350,17 +350,20 @@ mod time {
350350
}
351351

352352
fn to_date_time(&self, vm: &VirtualMachine) -> PyResult<NaiveDateTime> {
353-
let invalid = || vm.new_value_error("invalid struct_time parameter".to_owned());
353+
let invalid_overflow =
354+
|| vm.new_overflow_error("mktime argument out of range".to_owned());
355+
let invalid_value = || vm.new_value_error("invalid struct_time parameter".to_owned());
356+
354357
macro_rules! field {
355358
($field:ident) => {
356359
self.$field.clone().try_into_value(vm)?
357360
};
358361
}
359362
let dt = NaiveDateTime::new(
360363
NaiveDate::from_ymd_opt(field!(tm_year), field!(tm_mon), field!(tm_mday))
361-
.ok_or_else(invalid)?,
364+
.ok_or_else(invalid_value)?,
362365
NaiveTime::from_hms_opt(field!(tm_hour), field!(tm_min), field!(tm_sec))
363-
.ok_or_else(invalid)?,
366+
.ok_or_else(invalid_overflow)?,
364367
);
365368
Ok(dt)
366369
}

0 commit comments

Comments
 (0)