Noticed while looking at the same version in rsync. free() may clobber
errno so better save the value before calling free().
Also update the comment, remove all those arguments I removed :)

-- 
:wq Claudio

Index: mkdir.c
===================================================================
RCS file: /cvs/src/usr.sbin/rpki-client/mkdir.c,v
retrieving revision 1.6
diff -u -p -r1.6 mkdir.c
--- mkdir.c     29 Mar 2021 04:01:17 -0000      1.6
+++ mkdir.c     6 May 2021 16:41:16 -0000
@@ -39,15 +39,13 @@
 
 /*
  * mkpath -- create directories.
- *     path     - path
- *     mode     - file mode of terminal directory
- *     dir_mode - file mode of intermediate directories
+ *     dir     - path to create directories for
  */
 int
 mkpath(const char *dir)
 {
        char *path, *slash;
-       int done;
+       int done, save_errno;
 
        if ((path = strdup(dir)) == NULL)
                return -1;
@@ -61,7 +59,9 @@ mkpath(const char *dir)
                *slash = '\0';
 
                if (mkdir(path, 0755) == -1 && errno != EEXIST) {
+                       save_errno = errno;
                        free(path);
+                       errno = save_errno;
                        return -1;
                }
 

Reply via email to