Whamcloud - gitweb
[COVERITY] Handle potential case in debugfs if ext2fs_get_pathname returns NULL
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 29 Mar 2007 04:32:23 +0000 (00:32 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 29 Mar 2007 04:32:23 +0000 (00:32 -0400)
Coverity ID: 51: Use After Free

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
debugfs/ChangeLog
debugfs/debugfs.c

index c49aa63..d6fd671 100644 (file)
@@ -1,5 +1,8 @@
 2007-03-29  Theodore Tso  <tytso@mit.edu>
 
+       * debugfs.c (do_print_working_directory): Handle the case if
+               ext2fs_get_pathname returns NULL for the pathname.
+
        * htree.c (do_htree_dump): Fix coverity use before assignment
                warning.  (long_opt isn't being used for anything right
                now, so this is a no-op)
index 3bddef9..5efeb07 100644 (file)
@@ -953,15 +953,23 @@ void do_print_working_directory(int argc, char *argv[])
                com_err(argv[0], retval,
                        "while trying to get pathname of cwd");
        }
-       printf("[pwd]   INODE: %6u  PATH: %s\n", cwd, pathname);
-       free(pathname);
+       printf("[pwd]   INODE: %6u  PATH: %s\n",
+              cwd, pathname ? pathname : "NULL");
+        if (pathname) {
+               free(pathname);
+               pathname = NULL;
+        }
        retval = ext2fs_get_pathname(current_fs, root, 0, &pathname);
        if (retval) {
                com_err(argv[0], retval,
                        "while trying to get pathname of root");
        }
-       printf("[root]  INODE: %6u  PATH: %s\n", root, pathname);
-       free(pathname);
+       printf("[root]  INODE: %6u  PATH: %s\n",
+              root, pathname ? pathname : "NULL");
+       if (pathname) {
+               free(pathname);
+               pathname = NULL;
+       }
        return;
 }