From: Jeffrey Altman Date: Sat, 10 Dec 2011 18:28:17 +0000 (-0500) Subject: Windows: memory leak when setting tokens via smb X-Git-Tag: upstream/1.6.1.pre4^2~26 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=881ba096d2849707c26a7e0bd14d536a79fd5cc1;p=packages%2Fo%2Fopenafs.git Windows: memory leak when setting tokens via smb The SID string of the RPC used to set the token sessionKey was being leaked. Be sure to free it when it is no longer required. Reviewed-on: http://gerrit.openafs.org/6244 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman (cherry picked from commit f30d70ba5575753302be0a2b08c27a639898d4aa) Change-Id: I1133b50841919ca5957081c82625c2b1607c34ae Reviewed-on: http://gerrit.openafs.org/6815 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- diff --git a/src/WINNT/afsd/smb_ioctl.c b/src/WINNT/afsd/smb_ioctl.c index 542b3cf5b..a5be8ebb6 100644 --- a/src/WINNT/afsd/smb_ioctl.c +++ b/src/WINNT/afsd/smb_ioctl.c @@ -1088,11 +1088,14 @@ smb_IoctlSetToken(struct smb_ioctl *ioctlp, struct cm_user *userp, afs_uint32 pf goto done; } - if (!(pflags & AFSCALL_FLAG_LOCAL_SYSTEM) && rpc_sid) { - osi_Log1(smb_logp,"smb_IoctlSetToken Rpc Sid [%S]", - osi_LogSaveClientString(smb_logp, rpc_sid)); - if (!cm_ClientStrCmp(NTSID_LOCAL_SYSTEM, rpc_sid)) - pflags |= AFSCALL_FLAG_LOCAL_SYSTEM; + if (rpc_sid) { + if (!(pflags & AFSCALL_FLAG_LOCAL_SYSTEM)) { + osi_Log1(smb_logp,"smb_IoctlSetToken Rpc Sid [%S]", + osi_LogSaveClientString(smb_logp, rpc_sid)); + if (!cm_ClientStrCmp(NTSID_LOCAL_SYSTEM, rpc_sid)) + pflags |= AFSCALL_FLAG_LOCAL_SYSTEM; + } + LocalFree(rpc_sid); } if (!(pflags & AFSCALL_FLAG_LOCAL_SYSTEM) && (flags & PIOCTL_LOGON)) {