summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKartikaya Gupta <kats@seldon.staktrace.com>2016-10-02 15:12:57 -0400
committerKartikaya Gupta <kats@seldon.staktrace.com>2016-10-02 15:12:57 -0400
commit6670ad6bb7a31b850450519ed39686f76a925594 (patch)
tree27b460a92af14799f586c184c3c10574dd7f7ac7 /src
parentd85b01cc2bd01623fc8b76601ba5baba675ba388 (diff)
Fix dateparse to not overflow on larger timezones
Diffstat (limited to 'src')
-rw-r--r--src/dateparse.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dateparse.rs b/src/dateparse.rs
index 08f5b40..59fb478 100644
--- a/src/dateparse.rs
+++ b/src/dateparse.rs
@@ -143,7 +143,7 @@ pub fn dateparse(date: &str) -> Result<i64, &'static str> {
continue;
},
DateParseState::Timezone => {
- let (tz, tz_sign) = match tok.parse::<i16>() {
+ let (tz, tz_sign) = match tok.parse::<i32>() {
Ok(v) if v < 0 => (-v, -1),
Ok(v) => (v, 1),
Err(_) => return Err("Invalid timezone"),
@@ -174,5 +174,6 @@ mod tests {
assert_eq!(dateparse("Fri, 31 Dec 2100 00:00:00 +0000").unwrap(), 4133894400);
assert_eq!(dateparse("Fri, 31 Dec 2399 00:00:00 +0000").unwrap(), 13569379200);
assert_eq!(dateparse("Fri, 31 Dec 2400 00:00:00 +0000").unwrap(), 13601001600);
+ assert_eq!(dateparse("17 Sep 2016 16:05:38 -1000").unwrap(), 1474164338);
}
}