uname = cm_ParseIoctlStringAlloc(&ioctlp->ioctl, tp);
tp += strlen(tp) + 1;
- if ((pflags & AFSCALL_FLAG_LOCAL_SYSTEM) && (flags & PIOCTL_LOGON)) {
+ if (flags & PIOCTL_LOGON) {
/* SMB user name with which to associate tokens */
smbname = cm_ParseIoctlStringAlloc(&ioctlp->ioctl, tp);
osi_Log2(smb_logp,"cm_IoctlSetToken for user [%S] smbname [%S]",
code = CM_ERROR_INVAL;
goto done;
}
+
+ if (!(pflags & AFSCALL_FLAG_LOCAL_SYSTEM) && (flags & PIOCTL_LOGON)) {
+ code = CM_ERROR_NOACCESS;
+ goto done;
+ }
} else {
cellp = cm_data.rootCellp;
osi_Log0(smb_logp,"cm_IoctlSetToken - no name specified");
cm_ResetACLCache(cellp, userp);
done:
+ SecureZeroMemory(sessionKey, sizeof(sessionKey));
+
if (release_userp)
cm_ReleaseUser(userp);