]> git.phdru.name Git - extfs.d.git/blobdiff - torrent
torrent 1.2.4: Fix a bug in handling overflow with dates > 2038 year
[extfs.d.git] / torrent
diff --git a/torrent b/torrent
index 1dccb6556c5d2e6f8da4f27b2b3a30b31a7a2b6d..67588e5ee336909c7959e8c093495b6b436fe374 100755 (executable)
--- a/torrent
+++ b/torrent
@@ -35,12 +35,13 @@ The filesystem is, naturally, read-only.
 
 """
 
-__version__ = "1.2.3"
+__version__ = "1.2.4"
 __author__ = "Oleg Broytman <phd@phdru.name>"
-__copyright__ = "Copyright (C) 2010-2015 PhiloSoft Design"
+__copyright__ = "Copyright (C) 2010-2018 PhiloSoft Design"
 __license__ = "GPL"
 
 
+from datetime import datetime
 from os.path import dirname, getmtime
 import sys
 from time import localtime, asctime
@@ -299,16 +300,23 @@ def decode_torrent():
 
 
 def decode_datetime_asc(dt):
-    return asctime(localtime(float(dt)))
+    try:
+        return asctime(localtime(float(dt)))
+    except ValueError:
+        return datetime.max.ctime()
 
 
 def decode_datetime(dt):
-    Y, m, d, H, M = localtime(float(dt))[0:5]
-    return "%02d-%02d-%d %02d:%02d" % (m, d, Y, H, M)
+    try:
+        Y, m, d, H, M = localtime(float(dt))[0:5]
+    except ValueError:
+        return datetime.max.ctime()
+    else:
+        return "%02d-%02d-%d %02d:%02d" % (m, d, Y, H, M)
 
 
 def decode_announce_list(announce):
-    return '\n'.join(l[0] for l in announce)
+    return '\n'.join(l[0] for l in announce if l)
 
 
 command = sys.argv[1]