From: Jeffrey Altman Date: Sun, 23 Dec 2007 03:44:58 +0000 (+0000) Subject: DEVEL15-windows-pioctl-listlink-20071222 X-Git-Tag: openafs-devel-1_5_29~22 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=e3c7a1e7563c7fc175d367133d53526c0eb1d60f;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-pioctl-listlink-20071222 LICENSE MIT In the error case (1) reference the mountPointString instead of the output of cm_AssembleLink() which was not generated and (2) do not free memory and objects that were not allocated nor reference counted. (cherry picked from commit 111fb3a0a9525bb9d618dfa23cd1df3eb8eb61c5) --- diff --git a/src/WINNT/afsd/cm_ioctl.c b/src/WINNT/afsd/cm_ioctl.c index 36eff0dc1..b13f361b3 100644 --- a/src/WINNT/afsd/cm_ioctl.c +++ b/src/WINNT/afsd/cm_ioctl.c @@ -1922,13 +1922,11 @@ long cm_IoctlListlink(struct smb_ioctl *ioctlp, struct cm_user *userp) scp->fileType == CM_SCACHETYPE_DFSLINK || code == CM_ERROR_NOSUCHPATH && scp->fileType == CM_SCACHETYPE_INVALID) { + cp = ioctlp->outDatap; - StringCbCopyA(cp, SMB_IOCTL_MAXDATA - (cp - ioctlp->outAllocp), spacep->data); + StringCbCopyA(cp, SMB_IOCTL_MAXDATA - (cp - ioctlp->outAllocp), scp->mountPointStringp); cp += strlen(cp) + 1; ioctlp->outDatap = cp; - cm_FreeSpace(spacep); - if (newRootScp != NULL) - cm_ReleaseSCache(newRootScp); code = 0; }