From: Samuel Cabrero Date: Tue, 22 Feb 2022 11:59:44 +0000 (+0100) Subject: s3:libads: Fix memory leak in kerberos_return_pac() error path X-Git-Tag: samba-4.14.13~59 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b464cbc0358bffffeb92c2fa3a95b6d32700788d;p=thirdparty%2Fsamba.git s3:libads: Fix memory leak in kerberos_return_pac() error path Signed-off-by: Samuel Cabrero Reviewed-by: Stefan Metzmacher Reviewed-by: Andreas Schneider (cherry picked from commit 3dbcd20de98cd28683a9c248368e5082b6388111) --- diff --git a/source3/libads/authdata.c b/source3/libads/authdata.c index dd21d895fc2..c048510d480 100644 --- a/source3/libads/authdata.c +++ b/source3/libads/authdata.c @@ -61,7 +61,10 @@ NTSTATUS kerberos_return_pac(TALLOC_CTX *mem_ctx, { krb5_error_code ret; NTSTATUS status = NT_STATUS_INVALID_PARAMETER; - DATA_BLOB tkt, tkt_wrapped, ap_rep, sesskey1; + DATA_BLOB tkt = data_blob_null; + DATA_BLOB tkt_wrapped = data_blob_null; + DATA_BLOB ap_rep = data_blob_null; + DATA_BLOB sesskey1 = data_blob_null; const char *auth_princ = NULL; const char *cc = "MEMORY:kerberos_return_pac"; struct auth_session_info *session_info; @@ -81,7 +84,8 @@ NTSTATUS kerberos_return_pac(TALLOC_CTX *mem_ctx, ZERO_STRUCT(sesskey1); if (!name || !pass) { - return NT_STATUS_INVALID_PARAMETER; + status = NT_STATUS_INVALID_PARAMETER; + goto out; } if (cache_name) { @@ -131,7 +135,8 @@ NTSTATUS kerberos_return_pac(TALLOC_CTX *mem_ctx, if (expire_time && renew_till_time && (*expire_time == 0) && (*renew_till_time == 0)) { - return NT_STATUS_INVALID_LOGON_TYPE; + status = NT_STATUS_INVALID_LOGON_TYPE; + goto out; } ret = ads_krb5_cli_get_ticket(mem_ctx,