Skip to content

Commit 2d15dbc

Browse files
poetteringbluca
authored andcommitted
Revert "tree-wide: Mount file descriptors via /proc/<pid>/fd"
(cherry picked from commit 7b9da38) (cherry picked from commit d5c180b)
1 parent d3868a1 commit 2d15dbc

File tree

8 files changed

+16
-32
lines changed

8 files changed

+16
-32
lines changed

src/basic/fd-util.h

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
#include <sys/socket.h>
88

99
#include "macro.h"
10-
#include "format-util.h"
11-
#include "process-util.h"
1210
#include "stdio-util.h"
1311

1412
/* maximum length of fdname */
@@ -113,17 +111,14 @@ int fd_reopen(int fd, int flags);
113111
int read_nr_open(void);
114112
int fd_get_diskseq(int fd, uint64_t *ret);
115113

116-
/* The maximum length a buffer for a /proc/<pid>/fd/<fd> path needs. We intentionally don't use /proc/self/fd
117-
* as these paths might be read by other programs (for example when mounting file descriptors the source path
118-
* ends up in /proc/mounts and related files) for which /proc/self/fd will be interpreted differently than
119-
* /proc/<pid>/fd. */
114+
/* The maximum length a buffer for a /proc/self/fd/<fd> path needs */
120115
#define PROC_FD_PATH_MAX \
121-
(STRLEN("/proc//fd/") + DECIMAL_STR_MAX(pid_t) + DECIMAL_STR_MAX(int))
116+
(STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(int))
122117

123118
static inline char *format_proc_fd_path(char buf[static PROC_FD_PATH_MAX], int fd) {
124119
assert(buf);
125120
assert(fd >= 0);
126-
assert_se(snprintf_ok(buf, PROC_FD_PATH_MAX, "/proc/" PID_FMT "/fd/%i", getpid_cached(), fd));
121+
assert_se(snprintf_ok(buf, PROC_FD_PATH_MAX, "/proc/self/fd/%i", fd));
127122
return buf;
128123
}
129124

src/libsystemd-network/sd-dhcp6-client.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55

66
#include <errno.h>
77
#include <sys/ioctl.h>
8-
#include <net/if.h>
9-
#include <linux/if_arp.h> /* Must be included after <net/if.h> */
10-
#include <linux/if_infiniband.h> /* Must be included after <net/if.h> */
8+
#include <linux/if_arp.h>
9+
#include <linux/if_infiniband.h>
1110

1211
#include "sd-dhcp6-client.h"
1312

src/network/networkd-dhcp-server.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
/* SPDX-License-Identifier: LGPL-2.1-or-later */
22

33
#include <netinet/in.h>
4-
#include <net/if.h>
5-
#include <linux/if_arp.h> /* Must be included after <net/if.h> */
6-
#include <linux/if.h> /* Must be included after <net/if.h> */
4+
#include <linux/if_arp.h>
5+
#include <linux/if.h>
76

87
#include "sd-dhcp-server.h"
98

src/network/networkd-manager.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
#include <netinet/in.h>
44
#include <sys/socket.h>
55
#include <unistd.h>
6-
#include <net/if.h>
7-
#include <linux/if.h> /* Must be included after <net/if.h> */
6+
#include <linux/if.h>
87
#include <linux/fib_rules.h>
98
#include <linux/nexthop.h>
109
#include <linux/nl80211.h>

src/network/networkd-state-file.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
/* SPDX-License-Identifier: LGPL-2.1-or-later */
22

33
#include <netinet/in.h>
4-
#include <net/if.h>
5-
#include <linux/if.h> /* Must be included after <net/if.h> */
4+
#include <linux/if.h>
65

76
#include "alloc-util.h"
87
#include "dns-domain.h"

src/resolve/resolved-link.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* SPDX-License-Identifier: LGPL-2.1-or-later */
22

3-
#include <net/if.h>
4-
#include <linux/if.h> /* Must be included after <net/if.h> */
3+
#include <linux/if.h>
54
#include <unistd.h>
65

76
#include "sd-network.h"

src/test/test-fd-util.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -386,16 +386,11 @@ TEST(close_all_fds) {
386386
}
387387

388388
TEST(format_proc_fd_path) {
389-
_cleanup_free_ char *expected = NULL;
390-
391-
for (int i = 0; i < 4; i++) {
392-
assert_se(asprintf(&expected, "/proc/" PID_FMT "/fd/%i", getpid_cached(), i) >= 0);
393-
assert_se(streq_ptr(FORMAT_PROC_FD_PATH(i), expected));
394-
expected = mfree(expected);
395-
}
396-
397-
assert_se(asprintf(&expected, "/proc/" PID_FMT "/fd/2147483647", getpid_cached()) >= 0);
398-
assert_se(streq_ptr(FORMAT_PROC_FD_PATH(2147483647), expected));
389+
assert_se(streq_ptr(FORMAT_PROC_FD_PATH(0), "/proc/self/fd/0"));
390+
assert_se(streq_ptr(FORMAT_PROC_FD_PATH(1), "/proc/self/fd/1"));
391+
assert_se(streq_ptr(FORMAT_PROC_FD_PATH(2), "/proc/self/fd/2"));
392+
assert_se(streq_ptr(FORMAT_PROC_FD_PATH(3), "/proc/self/fd/3"));
393+
assert_se(streq_ptr(FORMAT_PROC_FD_PATH(2147483647), "/proc/self/fd/2147483647"));
399394
}
400395

401396
TEST(fd_reopen) {

src/udev/net/link-config.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
/* SPDX-License-Identifier: LGPL-2.1-or-later */
22

3-
#include <net/if.h>
4-
#include <linux/netdevice.h> /* Must be included after <net/if.h> */
3+
#include <linux/netdevice.h>
54
#include <netinet/ether.h>
65
#include <unistd.h>
76

0 commit comments

Comments
 (0)