summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormartijn <martijn@openbsd.org>2020-09-30 20:39:20 +0000
committermartijn <martijn@openbsd.org>2020-09-30 20:39:20 +0000
commitdf5397ceabfe70c02c1b323e2f00d3697134317d (patch)
treea3ce97061c3ea68b8bea7374312a811cb7ef1648
parentFix two minor memory leaks. (diff)
downloadwireguard-openbsd-df5397ceabfe70c02c1b323e2f00d3697134317d.tar.xz
wireguard-openbsd-df5397ceabfe70c02c1b323e2f00d3697134317d.zip
Sync with libagentx
-rw-r--r--usr.sbin/relayd/subagentx.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/usr.sbin/relayd/subagentx.c b/usr.sbin/relayd/subagentx.c
index ccb9684196b..ac2dccdb4d6 100644
--- a/usr.sbin/relayd/subagentx.c
+++ b/usr.sbin/relayd/subagentx.c
@@ -2686,7 +2686,9 @@ subagentx_get_free(struct subagentx_get *sag)
sao = sav->sav_sao;
index = &(sav->sav_index[j]);
if (sao->sao_index[j]->sai_vb.avb_type ==
- AGENTX_DATA_TYPE_OCTETSTRING)
+ AGENTX_DATA_TYPE_OCTETSTRING ||
+ sao->sao_index[j]->sai_vb.avb_type ==
+ AGENTX_DATA_TYPE_IPADDRESS)
free(index->sav_idata.avb_ostring.aos_string);
}
agentx_varbind_free(&(sag->sag_varbind[i].sav_vb));
@@ -3335,6 +3337,7 @@ subagentx_varbind_endofmibview(struct subagentx_varbind *sav)
{
struct subagentx_object *sao;
struct agentx_varbind *vb;
+ struct subagentx_varbind_index *index;
size_t i;
#ifdef AGENTX_DEBUG
@@ -3352,10 +3355,11 @@ subagentx_varbind_endofmibview(struct subagentx_varbind *sav)
sizeof(sao->sao_oid));
sav->sav_include = 1;
for (i = 0; i < sav->sav_indexlen; i++) {
- vb = &(sav->sav_index[i].sav_sai->sai_vb);
+ index = &(sav->sav_index[i]);
+ vb = &(index->sav_sai->sai_vb);
if (vb->avb_type == AGENTX_DATA_TYPE_OCTETSTRING ||
vb->avb_type == AGENTX_DATA_TYPE_IPADDRESS)
- free(vb->avb_data.avb_ostring.aos_string);
+ free(index->sav_idata.avb_ostring.aos_string);
}
bzero(&(sav->sav_index), sizeof(sav->sav_index));
subagentx_object_unlock(sav->sav_sao);