summaryrefslogtreecommitdiffstats
path: root/source/smbd/lanman.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2001-03-31 13:48:24 +0000
committerAndrew Tridgell <tridge@samba.org>2001-03-31 13:48:24 +0000
commit8b0e3679a6dc479c0e3177707dff386559779b69 (patch)
treec9b757f5a3b118e357ee5c082940b1f5b1e6b12a /source/smbd/lanman.c
parentf952380c5d0cfbbec1e7de98b712952f302cddfd (diff)
downloadsamba-8b0e3679a6dc479c0e3177707dff386559779b69.tar.gz
samba-8b0e3679a6dc479c0e3177707dff386559779b69.tar.xz
samba-8b0e3679a6dc479c0e3177707dff386559779b69.zip
started converting some of the only-ascii code to use srvstr_*
added srvstr_push_ascii() and srvstr_pull_ascii() as convenience routines to replace the current usage of strncpy() like fns for packet pull/push. We need to do this in *lots* of places in Samba in order to get our codepage handling right
Diffstat (limited to 'source/smbd/lanman.c')
-rw-r--r--source/smbd/lanman.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/source/smbd/lanman.c b/source/smbd/lanman.c
index e9df2ed41e5..73815a5c59d 100644
--- a/source/smbd/lanman.c
+++ b/source/smbd/lanman.c
@@ -368,7 +368,7 @@ static void PackDriverData(struct pack_desc* desc)
SIVAL(drivdata,0,sizeof drivdata); /* cb */
SIVAL(drivdata,4,1000); /* lVersion */
memset(drivdata+8,0,32); /* szDeviceName */
- pstrcpy(drivdata+8,"NULL");
+ srvstr_push_ascii(drivdata+8,"NULL",-1);
PACKl(desc,"l",drivdata,sizeof drivdata); /* pDriverData */
}
@@ -1267,11 +1267,11 @@ static int fill_srv_info(struct srv_info_struct *service,
switch (uLevel)
{
case 0:
- StrnCpy(p,service->name,15);
+ srvstr_push_ascii(p,service->name,15);
break;
case 1:
- StrnCpy(p,service->name,15);
+ srvstr_push_ascii(p,service->name,15);
SIVAL(p,18,service->type);
SIVAL(p,22,PTR_DIFF(p2,baseaddr));
len += CopyAndAdvance(&p2,service->comment,&l2);
@@ -1352,9 +1352,9 @@ static BOOL api_RNetServerEnum(connection_struct *conn, uint16 vuid, char *param
DEBUG(4, ("local_only:%s\n", BOOLSTR(local_request)));
if (strcmp(str1, "WrLehDz") == 0) {
- StrnCpy(domain, p, sizeof(fstring)-1);
+ srvstr_pull_ascii(domain, p, sizeof(fstring));
} else {
- StrnCpy(domain, global_myworkgroup, sizeof(fstring)-1);
+ fstrcpy(domain, global_myworkgroup);
}
if (lp_browse_list())
@@ -1527,7 +1527,7 @@ static int fill_share_info(connection_struct *conn, int snum, int uLevel,
}
if (!baseaddr) baseaddr = p;
- StrnCpy(p,lp_servicename(snum),13);
+ srvstr_push_ascii(p,lp_servicename(snum),13);
if (uLevel > 0)
{
@@ -1739,7 +1739,7 @@ static BOOL api_SetUserPassword(connection_struct *conn,uint16 vuid, char *param
fstring user;
fstring pass1,pass2;
- fstrcpy(user,p);
+ srvstr_pull_ascii(user,p,sizeof(user));
p = skip_string(p,1);
@@ -1876,8 +1876,7 @@ static BOOL api_SamOEMChangePassword(connection_struct *conn,uint16 vuid, char *
}
p = skip_string(p,1);
- fstrcpy(user,p);
- p = skip_string(p,1);
+ p += srvstr_pull_ascii(user,p,sizeof(user));
DEBUG(3,("api_SamOEMChangePassword: Change password for <%s>\n",user));
@@ -2146,8 +2145,8 @@ static BOOL api_RNetServerGetInfo(connection_struct *conn,uint16 vuid, char *par
p = *rdata;
p2 = p + struct_len;
if (uLevel != 20) {
- StrnCpy(p,local_machine,16);
- strupper(p);
+ srvstr_push(NULL, p,local_machine,16,
+ STR_ASCII|STR_UPPER|STR_TERMINATE|STR_CONVERT);
}
p += 16;
if (uLevel > 0)