[tor-commits] [stem/master] Integer truncation could break reader's last modified check

atagar at torproject.org atagar at torproject.org
Mon Mar 26 00:10:02 UTC 2012


commit 975d98d7337d4dd566aa5e9967e62afe2fdb0bc0
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Mar 25 16:12:32 2012 -0700

    Integer truncation could break reader's last modified check
    
    When saving the last modified timestamps they're saved as ints. However, the
    timestamp itself is a float, so the following check for an unchanging timestamp
    would fail.
---
 stem/descriptor/reader.py       |    2 +-
 test/integ/descriptor/reader.py |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/stem/descriptor/reader.py b/stem/descriptor/reader.py
index 61bee5c..4683744 100644
--- a/stem/descriptor/reader.py
+++ b/stem/descriptor/reader.py
@@ -326,7 +326,7 @@ class DescriptorReader:
         # This is a file. Register it's last modified timestamp and check if
         # it's a file that we should skip.
         
-        last_modified = os.stat(target).st_mtime
+        last_modified = int(os.stat(target).st_mtime)
         last_used = self._processed_files.get(target)
         
         if last_used and last_used >= last_modified:
diff --git a/test/integ/descriptor/reader.py b/test/integ/descriptor/reader.py
index 717a55b..1444dbb 100644
--- a/test/integ/descriptor/reader.py
+++ b/test/integ/descriptor/reader.py
@@ -279,7 +279,7 @@ class TestDescriptorReader(unittest.TestCase):
     for root, _, files in os.walk(DESCRIPTOR_TEST_DATA):
       for filename in files:
         path = os.path.join(root, filename)
-        last_modified = os.stat(path).st_mtime
+        last_modified = int(os.stat(path).st_mtime)
         expected_results[path] = last_modified
     
     reader = stem.descriptor.reader.DescriptorReader([DESCRIPTOR_TEST_DATA])





More information about the tor-commits mailing list