2020-10-14 23:30:44 +00:00
|
|
|
diff --git a/pppd/plugins/pppoatm/pppoatm.c b/pppd/plugins/pppoatm/pppoatm.c
|
|
|
|
index d693350..c31bb34 100644
|
|
|
|
--- a/pppd/plugins/pppoatm/pppoatm.c
|
|
|
|
+++ b/pppd/plugins/pppoatm/pppoatm.c
|
|
|
|
@@ -135,7 +135,7 @@ static int connect_pppoatm(void)
|
|
|
|
|
|
|
|
if (!device_got_set)
|
|
|
|
no_device_given_pppoatm();
|
|
|
|
- fd = socket(AF_ATMPVC, SOCK_DGRAM, 0);
|
|
|
|
+ fd = socket(AF_ATMPVC, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (fd < 0)
|
|
|
|
fatal("failed to create socket: %m");
|
|
|
|
memset(&qos, 0, sizeof qos);
|
|
|
|
diff --git a/pppd/plugins/pppol2tp/openl2tp.c b/pppd/plugins/pppol2tp/openl2tp.c
|
|
|
|
index 9643b96..1099575 100644
|
|
|
|
--- a/pppd/plugins/pppol2tp/openl2tp.c
|
|
|
|
+++ b/pppd/plugins/pppol2tp/openl2tp.c
|
|
|
|
@@ -83,7 +83,7 @@ static int openl2tp_client_create(void)
|
|
|
|
int result;
|
|
|
|
|
|
|
|
if (openl2tp_fd < 0) {
|
|
|
|
- openl2tp_fd = socket(PF_UNIX, SOCK_DGRAM, 0);
|
|
|
|
+ openl2tp_fd = socket(PF_UNIX, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (openl2tp_fd < 0) {
|
|
|
|
error("openl2tp connection create: %m");
|
|
|
|
return -ENOTCONN;
|
|
|
|
diff --git a/pppd/plugins/pppol2tp/pppol2tp.c b/pppd/plugins/pppol2tp/pppol2tp.c
|
|
|
|
index a7e3400..e64a778 100644
|
|
|
|
--- a/pppd/plugins/pppol2tp/pppol2tp.c
|
|
|
|
+++ b/pppd/plugins/pppol2tp/pppol2tp.c
|
|
|
|
@@ -208,7 +208,7 @@ static void send_config_pppol2tp(int mtu,
|
|
|
|
struct ifreq ifr;
|
|
|
|
int fd;
|
|
|
|
|
|
|
|
- fd = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
+ fd = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (fd >= 0) {
|
|
|
|
memset (&ifr, '\0', sizeof (ifr));
|
|
|
|
strlcpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
|
2021-01-05 21:57:18 +00:00
|
|
|
diff --git a/pppd/plugins/pppoe/if.c b/pppd/plugins/pppoe/if.c
|
2020-10-14 23:30:44 +00:00
|
|
|
index 91e9a57..72aba41 100644
|
2021-01-05 21:57:18 +00:00
|
|
|
--- a/pppd/plugins/pppoe/if.c
|
|
|
|
+++ b/pppd/plugins/pppoe/if.c
|
2020-10-14 23:30:44 +00:00
|
|
|
@@ -116,7 +116,7 @@ openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
|
|
|
|
stype = SOCK_PACKET;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
- if ((fd = socket(domain, stype, htons(type))) < 0) {
|
|
|
|
+ if ((fd = socket(domain, stype | SOCK_CLOEXEC, htons(type))) < 0) {
|
|
|
|
/* Give a more helpful message for the common error case */
|
|
|
|
if (errno == EPERM) {
|
|
|
|
fatal("Cannot create raw socket -- pppoe must be run as root.");
|
2021-01-05 21:57:18 +00:00
|
|
|
diff --git a/pppd/plugins/pppoe/plugin.c b/pppd/plugins/pppoe/plugin.c
|
2020-10-14 23:30:44 +00:00
|
|
|
index a8c2bb4..24bdf8f 100644
|
2021-01-05 21:57:18 +00:00
|
|
|
--- a/pppd/plugins/pppoe/plugin.c
|
|
|
|
+++ b/pppd/plugins/pppoe/plugin.c
|
2020-10-14 23:30:44 +00:00
|
|
|
@@ -137,7 +137,7 @@ PPPOEConnectDevice(void)
|
|
|
|
/* server equipment). */
|
|
|
|
/* Opening this socket just before waitForPADS in the discovery() */
|
|
|
|
/* function would be more appropriate, but it would mess-up the code */
|
|
|
|
- conn->sessionSocket = socket(AF_PPPOX, SOCK_STREAM, PX_PROTO_OE);
|
|
|
|
+ conn->sessionSocket = socket(AF_PPPOX, SOCK_STREAM | SOCK_CLOEXEC, PX_PROTO_OE);
|
|
|
|
if (conn->sessionSocket < 0) {
|
|
|
|
error("Failed to create PPPoE socket: %m");
|
|
|
|
return -1;
|
|
|
|
@@ -148,7 +148,7 @@ PPPOEConnectDevice(void)
|
|
|
|
lcp_wantoptions[0].mru = conn->mru;
|
|
|
|
|
|
|
|
/* Update maximum MRU */
|
|
|
|
- s = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
+ s = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (s < 0) {
|
|
|
|
error("Can't get MTU for %s: %m", conn->ifName);
|
|
|
|
goto errout;
|
|
|
|
@@ -320,7 +320,7 @@ PPPoEDevnameHook(char *cmd, char **argv, int doit)
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Open a socket */
|
|
|
|
- if ((fd = socket(PF_PACKET, SOCK_RAW, 0)) < 0) {
|
|
|
|
+ if ((fd = socket(PF_PACKET, SOCK_RAW | SOCK_CLOEXEC, 0)) < 0) {
|
|
|
|
r = 0;
|
|
|
|
}
|
|
|
|
|
2021-01-05 21:57:18 +00:00
|
|
|
diff --git a/pppd/plugins/pppoe/pppoe-discovery.c b/pppd/plugins/pppoe/pppoe-discovery.c
|
2020-10-14 23:30:44 +00:00
|
|
|
index 3d3bf4e..c0d927d 100644
|
2021-01-05 21:57:18 +00:00
|
|
|
--- a/pppd/plugins/pppoe/pppoe-discovery.c
|
|
|
|
+++ b/pppd/plugins/pppoe/pppoe-discovery.c
|
2020-10-14 23:30:44 +00:00
|
|
|
@@ -121,7 +121,7 @@ openInterface(char const *ifname, UINT16_t type, unsigned char *hwaddr)
|
|
|
|
stype = SOCK_PACKET;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
- if ((fd = socket(domain, stype, htons(type))) < 0) {
|
|
|
|
+ if ((fd = socket(domain, stype | SOCK_CLOEXEC, htons(type))) < 0) {
|
|
|
|
/* Give a more helpful message for the common error case */
|
|
|
|
if (errno == EPERM) {
|
2021-01-05 21:57:18 +00:00
|
|
|
fatal("Cannot create raw socket -- pppoe must be run as root.");
|
2020-10-14 23:30:44 +00:00
|
|
|
diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
|
|
|
|
index 00a2cf5..0690019 100644
|
|
|
|
--- a/pppd/sys-linux.c
|
|
|
|
+++ b/pppd/sys-linux.c
|
|
|
|
@@ -308,12 +308,12 @@ static int modify_flags(int fd, int clear_bits, int set_bits)
|
|
|
|
void sys_init(void)
|
|
|
|
{
|
|
|
|
/* Get an internet socket for doing socket ioctls. */
|
|
|
|
- sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
+ sock_fd = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (sock_fd < 0)
|
|
|
|
fatal("Couldn't create IP socket: %m(%d)", errno);
|
|
|
|
|
|
|
|
#ifdef INET6
|
|
|
|
- sock6_fd = socket(AF_INET6, SOCK_DGRAM, 0);
|
|
|
|
+ sock6_fd = socket(AF_INET6, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (sock6_fd < 0)
|
|
|
|
sock6_fd = -errno; /* save errno for later */
|
|
|
|
#endif
|
|
|
|
@@ -1857,7 +1857,7 @@ get_if_hwaddr(u_char *addr, char *name)
|
|
|
|
struct ifreq ifreq;
|
|
|
|
int ret, sock_fd;
|
|
|
|
|
|
|
|
- sock_fd = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
+ sock_fd = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (sock_fd < 0)
|
2021-01-05 21:57:18 +00:00
|
|
|
return -1;
|
2020-10-14 23:30:44 +00:00
|
|
|
memset(&ifreq.ifr_hwaddr, 0, sizeof(struct sockaddr));
|
|
|
|
@@ -2067,7 +2067,7 @@ int ppp_available(void)
|
|
|
|
/*
|
|
|
|
* Open a socket for doing the ioctl operations.
|
|
|
|
*/
|
|
|
|
- s = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
+ s = socket(AF_INET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (s < 0)
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
diff --git a/pppd/tty.c b/pppd/tty.c
|
|
|
|
index bc96695..8e76a5d 100644
|
|
|
|
--- a/pppd/tty.c
|
|
|
|
+++ b/pppd/tty.c
|
|
|
|
@@ -896,7 +896,7 @@ open_socket(dest)
|
|
|
|
*sep = ':';
|
|
|
|
|
|
|
|
/* get a socket and connect it to the other end */
|
|
|
|
- sock = socket(PF_INET, SOCK_STREAM, 0);
|
|
|
|
+ sock = socket(PF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0);
|
|
|
|
if (sock < 0) {
|
|
|
|
error("Can't create socket: %m");
|
|
|
|
return -1;
|
|
|
|
--
|
|
|
|
1.8.3.1
|
|
|
|
|