Date: Thu, 29 Aug 2002 16:36:09 +0200 (CEST)
From: Magnus B{ckstr|m <b@etek.chalmers.se>
To: freebsd-fs@freebsd.org
Subject: smbfs password capitalization
Message-ID: <Pine.BSF.4.44.0208291614360.10757-100000@scrooge.etek.chalmers.se>
next in thread | raw e-mail | index | archive | help
smbfs(4) capitalizes the password before attempting to authenticate to
an SMB server. This ceased being a good idea once even m$ admitted the
benefits of mixed-case passwords; can/should we change it?
I propose the below patch.
Magnus
diff -u src/sys/netsmb.ORIG/smb_conn.c src/sys/netsmb/smb_conn.c
--- src/sys/netsmb.ORIG/smb_conn.c Wed Aug 7 12:53:52 2002
+++ src/sys/netsmb/smb_conn.c Thu Aug 29 17:29:43 2002
@@ -429,7 +429,6 @@
ierror((vcp->vc_username = smb_strdup(vcspec->username)) == NULL, ENOMEM);
ithrow(iconv_open("tolower", vcspec->localcs, &vcp->vc_tolower));
- ithrow(iconv_open("toupper", vcspec->localcs, &vcp->vc_toupper));
if (vcspec->servercs[0]) {
ithrow(iconv_open(vcspec->servercs, vcspec->localcs,
&vcp->vc_toserver));
@@ -464,8 +463,6 @@
free(vcp->vc_laddr, M_SONAME);
if (vcp->vc_tolower)
iconv_close(vcp->vc_tolower);
- if (vcp->vc_toupper)
- iconv_close(vcp->vc_toupper);
if (vcp->vc_tolocal)
iconv_close(vcp->vc_tolocal);
if (vcp->vc_toserver)
diff -u src/sys/netsmb.ORIG/smb_conn.h src/sys/netsmb/smb_conn.h
--- src/sys/netsmb.ORIG/smb_conn.h Thu Feb 21 17:13:19 2002
+++ src/sys/netsmb/smb_conn.h Thu Aug 29 17:29:14 2002
@@ -244,7 +244,6 @@
int vc_maxvcs; /* maximum number of VC per connection */
void * vc_tolower; /* local charset */
- void * vc_toupper; /* local charset */
void * vc_toserver; /* local charset to server one */
void * vc_tolocal; /* server charset to local one */
int vc_number; /* number of this VC from the client side */
diff -u src/sys/netsmb.ORIG/smb_smb.c src/sys/netsmb/smb_smb.c
--- src/sys/netsmb.ORIG/smb_smb.c Thu Feb 21 17:18:39 2002
+++ src/sys/netsmb/smb_smb.c Thu Aug 29 17:06:04 2002
@@ -247,7 +247,7 @@
pbuf = malloc(SMB_MAXPASSWORDLEN + 1, M_SMBTEMP, M_WAITOK);
encpass = malloc(24, M_SMBTEMP, M_WAITOK);
if (vcp->vc_sopt.sv_sm & SMB_SM_USER) {
- iconv_convstr(vcp->vc_toupper, pbuf, smb_vc_getpass(vcp));
+ strncpy(pbuf, smb_vc_getpass(vcp), SMB_MAXPASSWORDLEN);
iconv_convstr(vcp->vc_toserver, pbuf, pbuf);
if (vcp->vc_sopt.sv_sm & SMB_SM_ENCRYPT) {
uniplen = plen = 24;
@@ -415,7 +415,7 @@
} else {
pbuf = malloc(SMB_MAXPASSWORDLEN + 1, M_SMBTEMP, M_WAITOK);
encpass = malloc(24, M_SMBTEMP, M_WAITOK);
- iconv_convstr(vcp->vc_toupper, pbuf, smb_share_getpass(ssp));
+ strncpy(pbuf, smb_share_getpass(ssp), SMB_MAXPASSWORDLEN);
iconv_convstr(vcp->vc_toserver, pbuf, pbuf);
if (vcp->vc_sopt.sv_sm & SMB_SM_ENCRYPT) {
plen = 24;
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-fs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.44.0208291614360.10757-100000>
