Loading libnl_2/handlers.c +4 −6 Original line number Diff line number Diff line Loading @@ -39,16 +39,14 @@ fail: struct nl_cb *nl_cb_clone(struct nl_cb *orig) { struct nl_cb *new_cb; int new_refcnt; new_cb = nl_cb_alloc(NL_CB_DEFAULT); if (new_cb == NULL) goto fail; /* Preserve reference count and copy original */ new_refcnt = new_cb->cb_refcnt; /* Copy original and set refcount to 1 */ memcpy(new_cb, orig, sizeof(*orig)); new_cb->cb_refcnt = new_refcnt; new_cb->cb_refcnt = 1; return new_cb; fail: Loading Loading @@ -84,9 +82,9 @@ struct nl_cb *nl_cb_get(struct nl_cb *cb) void nl_cb_put(struct nl_cb *cb) { if (!cb) return; cb->cb_refcnt--; if (cb->cb_refcnt <= 0) free(cb); } libnl_2/netlink.c +8 −8 Original line number Diff line number Diff line Loading @@ -59,15 +59,14 @@ int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla, \ { int rc = -1; int sk_flags; int RECV_BUF_SIZE; int RECV_BUF_SIZE = getpagesize(); int errsv; struct iovec recvmsg_iov; struct msghdr msg; /* Allocate buffer */ RECV_BUF_SIZE = getpagesize(); *buf = (unsigned char *) malloc(RECV_BUF_SIZE); if (!buf) { if (!(*buf)) { rc = -ENOMEM; goto fail; } Loading @@ -91,8 +90,11 @@ int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla, \ errsv = errno; fcntl(sk->s_fd, F_SETFL, sk_flags); if (rc < 0) if (rc < 0) { rc = -errsv; free(*buf); *buf = NULL; } fail: return rc; Loading @@ -108,7 +110,6 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) int rc, cb_rc = NL_OK, done = 0; do { unsigned char *buf; int i, rem, flags; struct nlmsghdr *nlh; Loading Loading @@ -187,7 +188,6 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) if (done) break; } free(buf); buf = NULL; Loading libnl_2/socket.c +22 −13 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ int nl_socket_add_membership(struct nl_sock *sk, int group) } /* Allocate new netlink socket. */ struct nl_sock *nl_socket_alloc(void) static struct nl_sock *_nl_socket_alloc(void) { struct nl_sock *sk; struct timeval tv; Loading @@ -39,13 +39,13 @@ struct nl_sock *nl_socket_alloc(void) sk = (struct nl_sock *) malloc(sizeof(struct nl_sock)); if (!sk) goto fail; return NULL; memset(sk, 0, sizeof(*sk)); /* Get current time */ if (gettimeofday(&tv, NULL)) return NULL; goto fail; else sk->s_seq_next = (int) tv.tv_sec; Loading @@ -59,24 +59,36 @@ struct nl_sock *nl_socket_alloc(void) sk->s_peer.nl_pid = 0; /* Kernel */ sk->s_peer.nl_groups = 0; /* No groups */ cb = (struct nl_cb *) malloc(sizeof(struct nl_cb)); if (!cb) goto cb_fail; memset(cb, 0, sizeof(*cb)); sk->s_cb = nl_cb_alloc(NL_CB_DEFAULT); return sk; fail: free(sk); return NULL; } /* Allocate new netlink socket. */ struct nl_sock *nl_socket_alloc(void) { struct nl_sock *sk = _nl_socket_alloc(); struct nl_cb *cb; if (!sk) return NULL; cb = nl_cb_alloc(NL_CB_DEFAULT); if (!cb) goto cb_fail; sk->s_cb = cb; return sk; cb_fail: free(sk); fail: return NULL; } /* Allocate new socket with custom callbacks. */ struct nl_sock *nl_socket_alloc_cb(struct nl_cb *cb) { struct nl_sock *sk = nl_socket_alloc(); struct nl_sock *sk = _nl_socket_alloc(); if (!sk) return NULL; Loading @@ -84,7 +96,6 @@ struct nl_sock *nl_socket_alloc_cb(struct nl_cb *cb) nl_cb_get(cb); return sk; } /* Free a netlink socket. */ Loading Loading @@ -116,5 +127,3 @@ int nl_socket_get_fd(struct nl_sock *sk) { return sk->s_fd; } Loading
libnl_2/handlers.c +4 −6 Original line number Diff line number Diff line Loading @@ -39,16 +39,14 @@ fail: struct nl_cb *nl_cb_clone(struct nl_cb *orig) { struct nl_cb *new_cb; int new_refcnt; new_cb = nl_cb_alloc(NL_CB_DEFAULT); if (new_cb == NULL) goto fail; /* Preserve reference count and copy original */ new_refcnt = new_cb->cb_refcnt; /* Copy original and set refcount to 1 */ memcpy(new_cb, orig, sizeof(*orig)); new_cb->cb_refcnt = new_refcnt; new_cb->cb_refcnt = 1; return new_cb; fail: Loading Loading @@ -84,9 +82,9 @@ struct nl_cb *nl_cb_get(struct nl_cb *cb) void nl_cb_put(struct nl_cb *cb) { if (!cb) return; cb->cb_refcnt--; if (cb->cb_refcnt <= 0) free(cb); }
libnl_2/netlink.c +8 −8 Original line number Diff line number Diff line Loading @@ -59,15 +59,14 @@ int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla, \ { int rc = -1; int sk_flags; int RECV_BUF_SIZE; int RECV_BUF_SIZE = getpagesize(); int errsv; struct iovec recvmsg_iov; struct msghdr msg; /* Allocate buffer */ RECV_BUF_SIZE = getpagesize(); *buf = (unsigned char *) malloc(RECV_BUF_SIZE); if (!buf) { if (!(*buf)) { rc = -ENOMEM; goto fail; } Loading @@ -91,8 +90,11 @@ int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla, \ errsv = errno; fcntl(sk->s_fd, F_SETFL, sk_flags); if (rc < 0) if (rc < 0) { rc = -errsv; free(*buf); *buf = NULL; } fail: return rc; Loading @@ -108,7 +110,6 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) int rc, cb_rc = NL_OK, done = 0; do { unsigned char *buf; int i, rem, flags; struct nlmsghdr *nlh; Loading Loading @@ -187,7 +188,6 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) if (done) break; } free(buf); buf = NULL; Loading
libnl_2/socket.c +22 −13 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ int nl_socket_add_membership(struct nl_sock *sk, int group) } /* Allocate new netlink socket. */ struct nl_sock *nl_socket_alloc(void) static struct nl_sock *_nl_socket_alloc(void) { struct nl_sock *sk; struct timeval tv; Loading @@ -39,13 +39,13 @@ struct nl_sock *nl_socket_alloc(void) sk = (struct nl_sock *) malloc(sizeof(struct nl_sock)); if (!sk) goto fail; return NULL; memset(sk, 0, sizeof(*sk)); /* Get current time */ if (gettimeofday(&tv, NULL)) return NULL; goto fail; else sk->s_seq_next = (int) tv.tv_sec; Loading @@ -59,24 +59,36 @@ struct nl_sock *nl_socket_alloc(void) sk->s_peer.nl_pid = 0; /* Kernel */ sk->s_peer.nl_groups = 0; /* No groups */ cb = (struct nl_cb *) malloc(sizeof(struct nl_cb)); if (!cb) goto cb_fail; memset(cb, 0, sizeof(*cb)); sk->s_cb = nl_cb_alloc(NL_CB_DEFAULT); return sk; fail: free(sk); return NULL; } /* Allocate new netlink socket. */ struct nl_sock *nl_socket_alloc(void) { struct nl_sock *sk = _nl_socket_alloc(); struct nl_cb *cb; if (!sk) return NULL; cb = nl_cb_alloc(NL_CB_DEFAULT); if (!cb) goto cb_fail; sk->s_cb = cb; return sk; cb_fail: free(sk); fail: return NULL; } /* Allocate new socket with custom callbacks. */ struct nl_sock *nl_socket_alloc_cb(struct nl_cb *cb) { struct nl_sock *sk = nl_socket_alloc(); struct nl_sock *sk = _nl_socket_alloc(); if (!sk) return NULL; Loading @@ -84,7 +96,6 @@ struct nl_sock *nl_socket_alloc_cb(struct nl_cb *cb) nl_cb_get(cb); return sk; } /* Free a netlink socket. */ Loading Loading @@ -116,5 +127,3 @@ int nl_socket_get_fd(struct nl_sock *sk) { return sk->s_fd; }