]> granicus.if.org Git - zfs/commitdiff
Set errno for mkdirp() called with NULL path ptr
authorChris Dunlap <cdunlap@llnl.gov>
Tue, 8 Apr 2014 22:31:11 +0000 (15:31 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 9 Apr 2014 20:32:22 +0000 (13:32 -0700)
If mkdirp() is called with a NULL ptr for the path arg, it will return
-1 with errno unchanged.  This is unexpected since on error it should
return -1 and set errno to one of the error values listed for mkdir(2).

This commit sets errno = ENOENT for this NULL ptr case.  This is in
accordance with the errors specified by mkdir(2):

  ENOENT
  A component of the path prefix does not exist or is a null pathname.

Signed-off-by: Chris Dunlap <cdunlap@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #2248

lib/libspl/mkdirp.c

index f98e31e2d3c02f07e19ca3f99fb83dd9e83e35af..2f091883adf5be430c6aa95ec94f958abfb5d281 100644 (file)
@@ -146,8 +146,10 @@ simplify(const char *str)
         *  bail out if there is nothing there.
         */
 
-       if (!str)
+       if (!str) {
+               errno = ENOENT;
                return (NULL);
+       }
 
        /*
         *  Get a copy of the argument.