DO NOT MERGE:Add missing SOCK_CLOEXEC flag when opening socket
Go through the code that opens socket in marshmallow, and backport the SOCK_CLOEXEC usage for AF_NETLINK. In kitkat, SOCK_CLOEXEC is not defined; therefore I used O_CLOEXEC instead. Bug: 31242981 Test: mma Change-Id: I792024c16b84ba3d6666d3df6002c89e0028f4b0
This commit is contained in:
parent
a1ec23634a
commit
a7ba9ff00b
|
@ -17,6 +17,7 @@
|
|||
#include <cutils/uevent.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
|
@ -104,7 +105,7 @@ int uevent_open_socket(int buf_sz, bool passcred)
|
|||
addr.nl_pid = getpid();
|
||||
addr.nl_groups = 0xffffffff;
|
||||
|
||||
s = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_KOBJECT_UEVENT);
|
||||
s = socket(PF_NETLINK, SOCK_DGRAM | O_CLOEXEC, NETLINK_KOBJECT_UEVENT);
|
||||
if(s < 0)
|
||||
return -1;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <sys/select.h>
|
||||
|
@ -311,7 +312,7 @@ int ifc_act_on_address(int action, const char *name, const char *address,
|
|||
req.n.nlmsg_len = NLMSG_ALIGN(req.n.nlmsg_len) + RTA_LENGTH(addrlen);
|
||||
memcpy(RTA_DATA(rta), addr, addrlen);
|
||||
|
||||
s = socket(PF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
|
||||
s = socket(PF_NETLINK, SOCK_RAW | O_CLOEXEC, NETLINK_ROUTE);
|
||||
if (send(s, &req, req.n.nlmsg_len, 0) < 0) {
|
||||
close(s);
|
||||
return -errno;
|
||||
|
|
Loading…
Reference in New Issue