Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7ba9ff0 authored by Tianjie Xu's avatar Tianjie Xu
Browse files

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
parent a1ec2363
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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;

+2 −1
Original line number Diff line number Diff line
@@ -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;