hc
2023-05-26 a23f51ed7a39e452c1037343a84d7db1ca2c5bd7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Upstream-Status: Inappropriate [1]
 
[1] Not the author, the patch is from:
http://vault.centos.org/5.8/os/SRPMS/rdist-6.1.5-44.src.rpm
 
--- rdist-6.1.5/src/server.c.mkstemp    2004-05-25 14:29:37.279312752 +0200
+++ rdist-6.1.5/src/server.c    2004-05-25 14:31:27.050744340 +0200
@@ -1479,11 +1479,18 @@
             *file = '/';
         }
         fd = mkstemp(new);
-        if (fd < 0) {
+        /* 
+         * Don't consider it a fatal error if mkstemp() fails
+         * because parent directory didn't exist. (Missing 
+         * parents are created later (in recvfile())
+         */
+        if ((fd < 0) && (errno != ENOENT)) {
             error("Cannot set file name.");
             return;
+        } else if (fd >= 0) {
+            close(fd);
+            unlink(new); /* Or symlink() will fail */
         }
-        close(fd);
     }
 
     /*