Imported Upstream version 2.6.0p1
[debian/amanda] / common-src / file.c
index 5446391ee804c9a7ef9d34cc2085957dc7cf375a..6f2a0acc4c97ccce7803d9f7fffafe3862b81d9c 100644 (file)
@@ -47,19 +47,19 @@ static int
 mk1dir(
     const char *dir, /* directory to create */
     mode_t     mode,   /* mode for new directory */
-    uid_t      G_GNUC_UNUSED uid,      /* uid for new directory */
-    gid_t      G_GNUC_UNUSED gid)      /* gid for new directory */
+    uid_t      uid,    /* uid for new directory */
+    gid_t      gid)    /* gid for new directory */
 {
     int rc;    /* return code */
 
     rc = mkdir(dir, mode);
-    if(rc != 0) {      /* maybe someone beat us to it */
+    if(rc != 0) {
        int serrno;
 
        serrno = errno;
-       if(access(dir, F_OK) != 0)
-           rc = -1;
-       errno = serrno; /* pass back the real error */
+       if(access(dir, F_OK) == 0)
+           rc = 0; /* someone just beat us to it, so it's OK */
+       errno = serrno;
     }
 
     /* mkdir is affected by umask, so set the mode bits manually */
@@ -203,11 +203,11 @@ safe_cd(void)
     if (client_uid != (uid_t) -1) {
 #if defined(AMANDA_DBGDIR)
        d = stralloc2(AMANDA_DBGDIR, "/.");
-       (void) mkpdir(d, (mode_t)02700, client_uid, client_gid);
+       (void) mkpdir(d, (mode_t)0700, client_uid, client_gid);
        amfree(d);
 #endif
        d = stralloc2(AMANDA_TMPDIR, "/.");
-       (void) mkpdir(d, (mode_t)02700, client_uid, client_gid);
+       (void) mkpdir(d, (mode_t)0700, client_uid, client_gid);
        amfree(d);
     }