aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2016-04-26 18:11:45 +0000
committerConrad Meyer <cem@FreeBSD.org>2016-04-26 18:11:45 +0000
commitbe0edef16363eb4e1c92b35cd54d89ef8f695eb0 (patch)
tree5290568bdfff39ad2fbafa917e71be3bece5c07f /sys
parent561e173f7e33f7987d639cd1cb95a9d3b9345ed5 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/kgssapi/gssd_prot.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/sys/kgssapi/gssd_prot.c b/sys/kgssapi/gssd_prot.c
index 3b8fbc591dc8..f888baf6e622 100644
--- a/sys/kgssapi/gssd_prot.c
+++ b/sys/kgssapi/gssd_prot.c
@@ -101,8 +101,10 @@ xdr_gss_OID(XDR *xdrs, gss_OID *oidp)
} else {
oid = mem_alloc(sizeof(gss_OID_desc));
memset(oid, 0, sizeof(*oid));
- if (!xdr_gss_OID_desc(xdrs, oid))
+ if (!xdr_gss_OID_desc(xdrs, oid)) {
+ mem_free(oid, sizeof(gss_OID_desc));
return (FALSE);
+ }
*oidp = oid;
}
break;
@@ -164,8 +166,10 @@ xdr_gss_OID_set(XDR *xdrs, gss_OID_set *setp)
} else {
set = mem_alloc(sizeof(gss_OID_set_desc));
memset(set, 0, sizeof(*set));
- if (!xdr_gss_OID_set_desc(xdrs, set))
+ if (!xdr_gss_OID_set_desc(xdrs, set)) {
+ mem_free(set, sizeof(gss_OID_set_desc));
return (FALSE);
+ }
*setp = set;
}
break;
@@ -224,8 +228,10 @@ xdr_gss_channel_bindings_t(XDR *xdrs, gss_channel_bindings_t *chp)
|| !xdr_gss_buffer_desc(xdrs,
&ch->acceptor_address)
|| !xdr_gss_buffer_desc(xdrs,
- &ch->application_data))
+ &ch->application_data)) {
+ mem_free(ch, sizeof(*ch));
return (FALSE);
+ }
*chp = ch;
}
break;