Skip to content

Commit bc213f6

Browse files
phdruzyv
authored andcommitted
vfs: torrent - fix date/time handling
Especially with overflow d/t; esp on w32. Closes #213 . Signed-off-by: Oleg Broytman <[email protected]> Signed-off-by: Yury V. Zaytsev <[email protected]>
1 parent 621c303 commit bc213f6

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/vfs/extfs/helpers/torrent.in

100644100755
Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -425,18 +425,23 @@ def decode_torrent():
425425

426426
def decode_datetime_asc(dt):
427427
try:
428-
return asctime(localtime(float(dt)))
429-
except ValueError:
428+
lt = localtime(float(dt))
429+
Y = lt[0]
430+
if Y > 9999:
431+
raise ValueError
432+
except (OSError, ValueError):
430433
return datetime.max.ctime()
434+
else:
435+
return asctime(lt)
431436

432437

433438
def decode_datetime(dt):
434439
try:
435-
Y, m, d, H, M = localtime(float(dt))[0:5]
436-
except ValueError:
437-
return datetime.max.ctime()
438-
if Y > 9999:
439-
Y = 9999
440+
Y, m, d, H, M = localtime(float(dt))[:5]
441+
if Y > 9999:
442+
raise ValueError
443+
except (OSError, ValueError):
444+
Y, m, d, H, M = datetime.max.timetuple()[:5]
440445
return "%02d-%02d-%d %02d:%02d" % (m, d, Y, H, M)
441446

442447

0 commit comments

Comments
 (0)