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

Commit e4b332c7 authored by Elliott Hughes's avatar Elliott Hughes Committed by Gerrit Code Review
Browse files

Merge "libnetutils: Check socket() return value"

parents cd60e4bd 29299742
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -253,6 +253,7 @@ int ifc_act_on_address(int action, const char *name, const char *address,
                       int prefixlen) {
    int ifindex, s, len, ret;
    struct sockaddr_storage ss;
    int saved_errno;
    void *addr;
    size_t addrlen;
    struct {
@@ -317,15 +318,21 @@ int ifc_act_on_address(int action, const char *name, const char *address,
    memcpy(RTA_DATA(rta), addr, addrlen);

    s = socket(PF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, NETLINK_ROUTE);
    if (s < 0) {
        return -errno;
    }

    if (send(s, &req, req.n.nlmsg_len, 0) < 0) {
        saved_errno = errno;
        close(s);
        return -errno;
        return -saved_errno;
    }

    len = recv(s, buf, sizeof(buf), 0);
    saved_errno = errno;
    close(s);
    if (len < 0) {
        return -errno;
        return -saved_errno;
    }

    // Parse the acknowledgement to find the return code.