Message ID | 20230801144209.557175-2-steved@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] rpcb_clnt.c: memory leak in destroy_addr | expand |
On 8/1/23 10:42 AM, Steve Dickson wrote: > From: Herb Wartens <wartens2@llnl.gov> > > Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2224666 > Signed-off-by: Steve Dickson <steved@redhat.com> Committed... (tag: libtirpc-1-3-4-rc2) steved > --- > src/rpcb_clnt.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/src/rpcb_clnt.c b/src/rpcb_clnt.c > index c0a9e12..68fe69a 100644 > --- a/src/rpcb_clnt.c > +++ b/src/rpcb_clnt.c > @@ -262,12 +262,15 @@ delete_cache(addr) > for (cptr = front; cptr != NULL; cptr = cptr->ac_next) { > if (!memcmp(cptr->ac_taddr->buf, addr->buf, addr->len)) { > /* Unlink from cache. We'll destroy it after releasing the mutex. */ > - if (cptr->ac_uaddr) > + if (cptr->ac_uaddr) { > free(cptr->ac_uaddr); > - if (prevptr) > + cptr->ac_uaddr = NULL; > + } > + if (prevptr) { > prevptr->ac_next = cptr->ac_next; > - else > + } else { > front = cptr->ac_next; > + } > cachesize--; > break; > }
diff --git a/src/rpcb_clnt.c b/src/rpcb_clnt.c index c0a9e12..68fe69a 100644 --- a/src/rpcb_clnt.c +++ b/src/rpcb_clnt.c @@ -262,12 +262,15 @@ delete_cache(addr) for (cptr = front; cptr != NULL; cptr = cptr->ac_next) { if (!memcmp(cptr->ac_taddr->buf, addr->buf, addr->len)) { /* Unlink from cache. We'll destroy it after releasing the mutex. */ - if (cptr->ac_uaddr) + if (cptr->ac_uaddr) { free(cptr->ac_uaddr); - if (prevptr) + cptr->ac_uaddr = NULL; + } + if (prevptr) { prevptr->ac_next = cptr->ac_next; - else + } else { front = cptr->ac_next; + } cachesize--; break; }