[tor-commits] [arm/master] fix: buggy path handling when saving snapshots

atagar at torproject.org atagar at torproject.org
Wed Dec 7 18:01:07 UTC 2011


commit c40d50313588cc472b426f9b6d4450dbe9d49084
Author: Damian Johnson <atagar at torproject.org>
Date:   Wed Dec 7 09:56:23 2011 -0800

    fix: buggy path handling when saving snapshots
    
    The log snapshot method both didn't expect relative paths and threw unexpected
    exceptions (OSError rather than IOError) when the mkdir call for our parent
    directory failed.
    
    Caught by Jeff Bonner in...
    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646080
---
 src/cli/logPanel.py |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/cli/logPanel.py b/src/cli/logPanel.py
index f39617d..179db9f 100644
--- a/src/cli/logPanel.py
+++ b/src/cli/logPanel.py
@@ -911,9 +911,15 @@ class LogPanel(panel.Panel, threading.Thread):
       path - path where to save the log snapshot
     """
     
+    path = os.path.abspath(path)
+    
     # make dir if the path doesn't already exist
     baseDir = os.path.dirname(path)
-    if not os.path.exists(baseDir): os.makedirs(baseDir)
+    
+    try:
+      if not os.path.exists(baseDir): os.makedirs(baseDir)
+    except OSError, exc:
+      raise IOError("unable to make directory '%s'" % baseDir)
     
     snapshotFile = open(path, "w")
     self.valsLock.acquire()



More information about the tor-commits mailing list