kgssapi: Don't leak memory in error cases
Reported by: Coverity CIDs: 1007046, 1007047, 1007048 Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
561e173f7e
commit
be0edef163
@ -101,8 +101,10 @@ xdr_gss_OID(XDR *xdrs, gss_OID *oidp)
|
|||||||
} else {
|
} else {
|
||||||
oid = mem_alloc(sizeof(gss_OID_desc));
|
oid = mem_alloc(sizeof(gss_OID_desc));
|
||||||
memset(oid, 0, sizeof(*oid));
|
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);
|
return (FALSE);
|
||||||
|
}
|
||||||
*oidp = oid;
|
*oidp = oid;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -164,8 +166,10 @@ xdr_gss_OID_set(XDR *xdrs, gss_OID_set *setp)
|
|||||||
} else {
|
} else {
|
||||||
set = mem_alloc(sizeof(gss_OID_set_desc));
|
set = mem_alloc(sizeof(gss_OID_set_desc));
|
||||||
memset(set, 0, sizeof(*set));
|
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);
|
return (FALSE);
|
||||||
|
}
|
||||||
*setp = set;
|
*setp = set;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -224,8 +228,10 @@ xdr_gss_channel_bindings_t(XDR *xdrs, gss_channel_bindings_t *chp)
|
|||||||
|| !xdr_gss_buffer_desc(xdrs,
|
|| !xdr_gss_buffer_desc(xdrs,
|
||||||
&ch->acceptor_address)
|
&ch->acceptor_address)
|
||||||
|| !xdr_gss_buffer_desc(xdrs,
|
|| !xdr_gss_buffer_desc(xdrs,
|
||||||
&ch->application_data))
|
&ch->application_data)) {
|
||||||
|
mem_free(ch, sizeof(*ch));
|
||||||
return (FALSE);
|
return (FALSE);
|
||||||
|
}
|
||||||
*chp = ch;
|
*chp = ch;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user