From 6d9f02302ddb1e78f6f9eb34c4e20ce4f26c45e2 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 2 Nov 2011 04:41:24 -0700 Subject: [PATCH 1/4] Revert "Merge "libnl_2: Fix memory leaks" into ics-mr0" This reverts commit 4f7c0843bbaa9cb4ec3a7890461cebbee689530a, reversing changes made to 6fb3df8d468a105b49c1cdbbdcb061dc8de022a4. --- libnl_2/handlers.c | 10 ++++++---- libnl_2/netlink.c | 16 ++++++++-------- libnl_2/socket.c | 35 +++++++++++++---------------------- 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/libnl_2/handlers.c b/libnl_2/handlers.c index 48dcab4a8..ec8d51270 100644 --- a/libnl_2/handlers.c +++ b/libnl_2/handlers.c @@ -39,14 +39,16 @@ 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; - /* Copy original and set refcount to 1 */ + /* Preserve reference count and copy original */ + new_refcnt = new_cb->cb_refcnt; memcpy(new_cb, orig, sizeof(*orig)); - new_cb->cb_refcnt = 1; + new_cb->cb_refcnt = new_refcnt; return new_cb; fail: @@ -82,9 +84,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); + } + diff --git a/libnl_2/netlink.c b/libnl_2/netlink.c index ee3d600f7..cc2f88e68 100644 --- a/libnl_2/netlink.c +++ b/libnl_2/netlink.c @@ -59,14 +59,15 @@ int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla, \ { int rc = -1; int sk_flags; - int RECV_BUF_SIZE = getpagesize(); + int RECV_BUF_SIZE; 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; } @@ -90,11 +91,8 @@ 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; @@ -110,6 +108,7 @@ 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; @@ -128,7 +127,7 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) /* Check for callbacks */ - msg = (struct nl_msg *) malloc(sizeof(struct nl_msg)); + msg = (struct nl_msg *)malloc(sizeof(struct nl_msg)); memset(msg, 0, sizeof(*msg)); msg->nm_nlh = nlh; @@ -188,6 +187,7 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) if (done) break; } + free(buf); buf = NULL; @@ -197,7 +197,7 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) success: fail: - return rc; + return rc; } /* Send raw data over netlink socket */ diff --git a/libnl_2/socket.c b/libnl_2/socket.c index d906cac27..ce54f19ba 100644 --- a/libnl_2/socket.c +++ b/libnl_2/socket.c @@ -31,7 +31,7 @@ int nl_socket_add_membership(struct nl_sock *sk, int group) } /* Allocate new netlink socket. */ -static struct nl_sock *_nl_socket_alloc(void) +struct nl_sock *nl_socket_alloc(void) { struct nl_sock *sk; struct timeval tv; @@ -39,13 +39,13 @@ static struct nl_sock *_nl_socket_alloc(void) sk = (struct nl_sock *) malloc(sizeof(struct nl_sock)); if (!sk) - return NULL; + goto fail; memset(sk, 0, sizeof(*sk)); /* Get current time */ if (gettimeofday(&tv, NULL)) - goto fail; + return NULL; else sk->s_seq_next = (int) tv.tv_sec; @@ -59,36 +59,24 @@ static struct nl_sock *_nl_socket_alloc(void) sk->s_peer.nl_pid = 0; /* Kernel */ sk->s_peer.nl_groups = 0; /* No groups */ - 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); + cb = (struct nl_cb *) malloc(sizeof(struct nl_cb)); if (!cb) goto cb_fail; - sk->s_cb = cb; + memset(cb, 0, sizeof(*cb)); + sk->s_cb = nl_cb_alloc(NL_CB_DEFAULT); + + 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; @@ -96,6 +84,7 @@ struct nl_sock *nl_socket_alloc_cb(struct nl_cb *cb) nl_cb_get(cb); return sk; + } /* Free a netlink socket. */ @@ -127,3 +116,5 @@ int nl_socket_get_fd(struct nl_sock *sk) { return sk->s_fd; } + + From 77aa2952722bea6a3351c760147eac8b8864ecc5 Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 2 Nov 2011 10:17:46 -0700 Subject: [PATCH 2/4] Revert "Merge "Remove log spam" into ics-mr0" This reverts commit d4f29767c8cd5a0d8b52b77bed117ca3746af8f3, reversing changes made to 604f52e31357a774ad49290e323976b1db5b9f38. --- libsysutils/src/NetlinkEvent.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/libsysutils/src/NetlinkEvent.cpp b/libsysutils/src/NetlinkEvent.cpp index 4beebb73d..fe969768d 100644 --- a/libsysutils/src/NetlinkEvent.cpp +++ b/libsysutils/src/NetlinkEvent.cpp @@ -122,6 +122,7 @@ bool NetlinkEvent::parseBinaryNetlinkMessage(char *buffer, int size) { } pm = (ulog_packet_msg_t *)NLMSG_DATA(nh); devname = pm->indev_name[0] ? pm->indev_name : pm->outdev_name; + SLOGD("QLOG prefix=%s dev=%s\n", pm->prefix, devname); asprintf(&mParams[0], "ALERT_NAME=%s", pm->prefix); asprintf(&mParams[1], "INTERFACE=%s", devname); mSubsystem = strdup("qlog"); From fa792b19cc50d5b6a214a96e25ccf1c8f952c06a Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 2 Nov 2011 10:18:01 -0700 Subject: [PATCH 3/4] Revert "Merge "charger: make the almost-full frame only show when it's current level" into ics-mr0" This reverts commit 6fb3df8d468a105b49c1cdbbdcb061dc8de022a4, reversing changes made to d4f29767c8cd5a0d8b52b77bed117ca3746af8f3. --- charger/charger.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/charger/charger.c b/charger/charger.c index abf551710..03280bfe8 100644 --- a/charger/charger.c +++ b/charger/charger.c @@ -87,7 +87,6 @@ struct frame { const char *name; int disp_time; int min_capacity; - bool level_only; gr_surface surface; }; @@ -158,7 +157,6 @@ static struct frame batt_anim_frames[] = { .name = "charger/battery_4", .disp_time = 750, .min_capacity = 80, - .level_only = true, }, { .name = "charger/battery_5", @@ -737,14 +735,7 @@ static void update_screen_state(struct charger *charger, int64_t now) * if necessary, advance cycle cntr, and reset frame cntr */ batt_anim->cur_frame++; - - /* if the frame is used for level-only, that is only show it when it's - * the current level, skip it during the animation. - */ - while (batt_anim->cur_frame < batt_anim->num_frames && - batt_anim->frames[batt_anim->cur_frame].level_only) - batt_anim->cur_frame++; - if (batt_anim->cur_frame >= batt_anim->num_frames) { + if (batt_anim->cur_frame == batt_anim->num_frames) { batt_anim->cur_cycle++; batt_anim->cur_frame = 0; From 6641b39923ccedab884cad336c0f758d0e7be8fe Mon Sep 17 00:00:00 2001 From: The Android Automerger Date: Wed, 2 Nov 2011 10:18:15 -0700 Subject: [PATCH 4/4] Revert "Merge "libnl_2: Fix memory leaks" into ics-mr0" This reverts commit 4f7c0843bbaa9cb4ec3a7890461cebbee689530a, reversing changes made to 6fb3df8d468a105b49c1cdbbdcb061dc8de022a4. --- libnl_2/handlers.c | 10 ++++++---- libnl_2/netlink.c | 16 ++++++++-------- libnl_2/socket.c | 35 +++++++++++++---------------------- 3 files changed, 27 insertions(+), 34 deletions(-) diff --git a/libnl_2/handlers.c b/libnl_2/handlers.c index 48dcab4a8..ec8d51270 100644 --- a/libnl_2/handlers.c +++ b/libnl_2/handlers.c @@ -39,14 +39,16 @@ 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; - /* Copy original and set refcount to 1 */ + /* Preserve reference count and copy original */ + new_refcnt = new_cb->cb_refcnt; memcpy(new_cb, orig, sizeof(*orig)); - new_cb->cb_refcnt = 1; + new_cb->cb_refcnt = new_refcnt; return new_cb; fail: @@ -82,9 +84,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); + } + diff --git a/libnl_2/netlink.c b/libnl_2/netlink.c index ee3d600f7..cc2f88e68 100644 --- a/libnl_2/netlink.c +++ b/libnl_2/netlink.c @@ -59,14 +59,15 @@ int nl_recv(struct nl_sock *sk, struct sockaddr_nl *nla, \ { int rc = -1; int sk_flags; - int RECV_BUF_SIZE = getpagesize(); + int RECV_BUF_SIZE; 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; } @@ -90,11 +91,8 @@ 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; @@ -110,6 +108,7 @@ 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; @@ -128,7 +127,7 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) /* Check for callbacks */ - msg = (struct nl_msg *) malloc(sizeof(struct nl_msg)); + msg = (struct nl_msg *)malloc(sizeof(struct nl_msg)); memset(msg, 0, sizeof(*msg)); msg->nm_nlh = nlh; @@ -188,6 +187,7 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) if (done) break; } + free(buf); buf = NULL; @@ -197,7 +197,7 @@ int nl_recvmsgs(struct nl_sock *sk, struct nl_cb *cb) success: fail: - return rc; + return rc; } /* Send raw data over netlink socket */ diff --git a/libnl_2/socket.c b/libnl_2/socket.c index d906cac27..ce54f19ba 100644 --- a/libnl_2/socket.c +++ b/libnl_2/socket.c @@ -31,7 +31,7 @@ int nl_socket_add_membership(struct nl_sock *sk, int group) } /* Allocate new netlink socket. */ -static struct nl_sock *_nl_socket_alloc(void) +struct nl_sock *nl_socket_alloc(void) { struct nl_sock *sk; struct timeval tv; @@ -39,13 +39,13 @@ static struct nl_sock *_nl_socket_alloc(void) sk = (struct nl_sock *) malloc(sizeof(struct nl_sock)); if (!sk) - return NULL; + goto fail; memset(sk, 0, sizeof(*sk)); /* Get current time */ if (gettimeofday(&tv, NULL)) - goto fail; + return NULL; else sk->s_seq_next = (int) tv.tv_sec; @@ -59,36 +59,24 @@ static struct nl_sock *_nl_socket_alloc(void) sk->s_peer.nl_pid = 0; /* Kernel */ sk->s_peer.nl_groups = 0; /* No groups */ - 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); + cb = (struct nl_cb *) malloc(sizeof(struct nl_cb)); if (!cb) goto cb_fail; - sk->s_cb = cb; + memset(cb, 0, sizeof(*cb)); + sk->s_cb = nl_cb_alloc(NL_CB_DEFAULT); + + 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; @@ -96,6 +84,7 @@ struct nl_sock *nl_socket_alloc_cb(struct nl_cb *cb) nl_cb_get(cb); return sk; + } /* Free a netlink socket. */ @@ -127,3 +116,5 @@ int nl_socket_get_fd(struct nl_sock *sk) { return sk->s_fd; } + +