Save and restore cwd since it gets clobbered by the directory walker
authorSteve Muir <smuir@cs.princeton.edu>
Wed, 5 Oct 2005 21:36:06 +0000 (21:36 +0000)
committerSteve Muir <smuir@cs.princeton.edu>
Wed, 5 Oct 2005 21:36:06 +0000 (21:36 +0000)
python/vduimpl.c

index 01fc63c..fb219ff 100644 (file)
@@ -537,6 +537,7 @@ do_vdu(PyObject *self, PyObject *args)
        int res;
        struct stats s;
        HashTable tbl;
+       int  cwd_fd;
 
        if (!PyArg_ParseTuple(args, "s", &path))
                return Py_None;
@@ -545,7 +546,9 @@ do_vdu(PyObject *self, PyObject *args)
        s.inodes = s.blocks = s.size = 0;
        (void) Init(&tbl,0,0);
 
+       cwd_fd = open(".", O_RDONLY);
        res = vdu_onedir(&tbl, &s, path);
+       fchdir(cwd_fd);
 
        /* deallocate whatever has been added to tbl */
        Dispose(&tbl);