windows-smb-fix-20050322

the use logon cache hack only works on xp and above. do not give up
use of smb auth simply because it fails

fix the smb_vc_t refCount fix to smb_CopyPacket.  Only hold a smb_vc_t
if there is one.
This commit is contained in:
Jeffrey Altman 2005-03-22 05:42:29 +00:00
parent 8d8fe49478
commit 46f7713f16

View File

@ -1841,7 +1841,8 @@ smb_packet_t *smb_CopyPacket(smb_packet_t *pkt)
tbp = GetPacket(); tbp = GetPacket();
memcpy(tbp, pkt, sizeof(smb_packet_t)); memcpy(tbp, pkt, sizeof(smb_packet_t));
tbp->wctp = tbp->data + ((unsigned int)pkt->wctp - (unsigned int)pkt->data); tbp->wctp = tbp->data + ((unsigned int)pkt->wctp - (unsigned int)pkt->data);
smb_HoldVC(tbp->vcp); if (tbp->vcp)
smb_HoldVC(tbp->vcp);
return tbp; return tbp;
} }
@ -8090,18 +8091,23 @@ void smb_Init(osi_log_t *logp, char *snamep, int useV3, int LANadapt,
smb_lsaLogonOrigin.MaximumLength = smb_lsaLogonOrigin.Length + 1; smb_lsaLogonOrigin.MaximumLength = smb_lsaLogonOrigin.Length + 1;
} else { } else {
afsi_log("Can't determine security package name for NTLM!! NTSTATUS=[%l]",nts); afsi_log("Can't determine security package name for NTLM!! NTSTATUS=[%l]",nts);
/* something went wrong. We report the error and revert back to no authentication
because we can't perform any auth requests without a successful lsa handle
or sec package id. */
afsi_log("Reverting to NO SMB AUTH");
smb_authType = SMB_AUTH_NONE;
} }
} else { } else {
afsi_log("Can't register logon process!! NTSTATUS=[%l]",nts); afsi_log("Can't register logon process!! NTSTATUS=[%l]",nts);
}
if (nts != STATUS_SUCCESS) {
/* something went wrong. We report the error and revert back to no authentication /* something went wrong. We report the error and revert back to no authentication
because we can't perform any auth requests without a successful lsa handle because we can't perform any auth requests without a successful lsa handle
or sec package id. */ or sec package id. */
afsi_log("Reverting to NO SMB AUTH"); afsi_log("Reverting to NO SMB AUTH");
smb_authType = SMB_AUTH_NONE; smb_authType = SMB_AUTH_NONE;
} }
#ifdef COMMENT #ifdef COMMENT
/* Don't fallback to SMB_AUTH_NTLM. Apparently, allowing SPNEGO to be used each /* Don't fallback to SMB_AUTH_NTLM. Apparently, allowing SPNEGO to be used each
* time prevents the failure of authentication when logged into Windows with an * time prevents the failure of authentication when logged into Windows with an