aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMariusz Zaborski <oshogbo@FreeBSD.org>2021-12-14 10:57:36 +0000
committerMariusz Zaborski <oshogbo@FreeBSD.org>2022-03-12 10:28:52 +0000
commit2b0d4ae9ce617effa72e469e8b0d113d2008bea8 (patch)
treebe8b9a24edfae0986dcd4f987d6b6715a3f09802
parent2c1ade6cd608aaa8a12885f42cde176afc417031 (diff)
downloadsrc-2b0d4ae9ce617effa72e469e8b0d113d2008bea8.tar.gz
src-2b0d4ae9ce617effa72e469e8b0d113d2008bea8.zip
cap_net: plug memory leak
MFC after: 5 days (cherry picked from commit 88910b8b7b14386e05bccda0317ace2bfd383ef5)
-rw-r--r--lib/libcasper/services/cap_net/cap_net.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/libcasper/services/cap_net/cap_net.c b/lib/libcasper/services/cap_net/cap_net.c
index a1a66a05b5a2..c6abaa69faf6 100644
--- a/lib/libcasper/services/cap_net/cap_net.c
+++ b/lib/libcasper/services/cap_net/cap_net.c
@@ -326,8 +326,10 @@ cap_getaddrinfo(cap_channel_t *chan, const char *hostname, const char *servname,
break;
nvlai = nvlist_get_nvlist(nvl, nvlname);
curai = addrinfo_unpack(nvlai);
- if (curai == NULL)
+ if (curai == NULL) {
+ nvlist_destroy(nvl);
return (EAI_MEMORY);
+ }
if (prevai != NULL)
prevai->ai_next = curai;
else
@@ -896,8 +898,10 @@ net_getnameinfo(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
error = EAI_FAIL;
goto out;
}
- if (!net_allowed_bsaddr(funclimit, sabin, sabinsize))
- return (ENOTCAPABLE);
+ if (!net_allowed_bsaddr(funclimit, sabin, sabinsize)) {
+ error = ENOTCAPABLE;
+ goto out;
+ }
memcpy(&sast, sabin, sabinsize);
salen = (socklen_t)sabinsize;