1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-21 18:04:06 +03:00

This is a security audit change of the main source.

It removed all ocurrences of the following functions :

sprintf
strcpy
strcat

The replacements are slprintf, safe_strcpy and safe_strcat.

It should not be possible to use code in Samba that uses
sprintf, strcpy or strcat, only the safe_equivalents.

Once Andrew has fixed the slprintf implementation then
this code will be moved back to the 1.9.18 code stream.

Jeremy.
(This used to be commit 2d774454005f0b54e5684cf618da7060594dfcbb)
This commit is contained in:
Jeremy Allison 1998-05-12 00:55:32 +00:00
parent 9141acecdc
commit f888868f46
68 changed files with 887 additions and 787 deletions

View File

@ -240,7 +240,7 @@ static BOOL chkpath(char *path,BOOL report)
pstring inbuf,outbuf;
char *p;
strcpy(path2,path);
fstrcpy(path2,path);
trim_string(path2,NULL,"\\");
if (!*path2) *path2 = '\\';
@ -252,7 +252,7 @@ static BOOL chkpath(char *path,BOOL report)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,path2);
fstrcpy(p,path2);
#if 0
{
@ -294,10 +294,10 @@ static void send_message(char *inbuf,char *outbuf)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,username);
pstrcpy(p,username);
p = skip_string(p,1);
*p++ = 4;
strcpy(p,desthost);
pstrcpy(p,desthost);
p = skip_string(p,1);
set_message(outbuf,0,PTR_DIFF(p,smb_buf(outbuf)),False);
@ -423,24 +423,24 @@ static void do_cd(char *newdir)
/* Save the current directory in case the
new directory is invalid */
strcpy(saved_dir, cur_dir);
pstrcpy(saved_dir, cur_dir);
if (*p == '\\')
strcpy(cur_dir,p);
pstrcpy(cur_dir,p);
else
strcat(cur_dir,p);
pstrcat(cur_dir,p);
if (*(cur_dir+strlen(cur_dir)-1) != '\\') {
strcat(cur_dir, "\\");
pstrcat(cur_dir, "\\");
}
dos_clean_name(cur_dir);
strcpy(dname,cur_dir);
strcat(cur_dir,"\\");
pstrcpy(dname,cur_dir);
pstrcat(cur_dir,"\\");
dos_clean_name(cur_dir);
if (!strequal(cur_dir,"\\"))
if (!chkpath(dname,True))
strcpy(cur_dir,saved_dir);
pstrcpy(cur_dir,saved_dir);
strcpy(cd_path,cur_dir);
pstrcpy(cd_path,cur_dir);
}
/****************************************************************************
@ -505,7 +505,7 @@ static int do_long_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (*
uint16 setup;
pstring param;
strcpy(mask,Mask);
pstrcpy(mask,Mask);
while (ff_eos == 0)
{
@ -524,7 +524,7 @@ static int do_long_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (*
SSVAL(param,4,8+4+2); /* resume required + close on end + continue */
SSVAL(param,6,info_level);
SIVAL(param,8,0);
strcpy(param+12,mask);
pstrcpy(param+12,mask);
}
else
{
@ -534,7 +534,7 @@ static int do_long_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (*
SSVAL(param,4,info_level);
SIVAL(param,6,ff_resume_key); /* ff_resume_key */
SSVAL(param,10,8+4+2); /* resume required + close on end + continue */
strcpy(param+12,mask);
pstrcpy(param+12,mask);
DEBUG(5,("hand=0x%X resume=%d ff_lastname=%d mask=%s\n",
ff_dir_handle,ff_resume_key,ff_lastname,mask));
@ -584,16 +584,16 @@ static int do_long_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (*
case 260:
ff_resume_key =0;
StrnCpy(mask,p+ff_lastname,resp_data_len-ff_lastname);
/* strcpy(mask,p+ff_lastname+94); */
/* pstrcpy(mask,p+ff_lastname+94); */
break;
case 1:
strcpy(mask,p + ff_lastname + 1);
pstrcpy(mask,p + ff_lastname + 1);
ff_resume_key = 0;
break;
}
}
else
strcpy(mask,"");
pstrcpy(mask,"");
/* and add them to the dirlist pool */
dirlist = Realloc(dirlist,dirlist_len + resp_data_len);
@ -667,7 +667,7 @@ static int do_short_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (
bzero(status,21);
strcpy(mask,Mask);
pstrcpy(mask,Mask);
while (1)
{
@ -694,9 +694,9 @@ static int do_short_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (
*p++ = 4;
if (first)
strcpy(p,mask);
pstrcpy(p,mask);
else
strcpy(p,"");
pstrcpy(p,"");
p += strlen(p) + 1;
*p++ = 5;
@ -751,7 +751,7 @@ static int do_short_dir(char *inbuf,char *outbuf,char *Mask,int attribute,void (
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,"");
pstrcpy(p,"");
p += strlen(p) + 1;
*p++ = 5;
@ -859,7 +859,7 @@ static int interpret_short_filename(char *p,file_info *finfo)
finfo->ctime = make_unix_date(p+22);
finfo->mtime = finfo->atime = finfo->ctime;
finfo->size = IVAL(p,26);
strcpy(finfo->name,p+30);
pstrcpy(finfo->name,p+30);
return(DIR_STRUCT_SIZE);
}
@ -886,7 +886,7 @@ static int interpret_long_filename(int level,char *p,file_info *finfo)
finfo->mtime = make_unix_date2(p+12);
finfo->size = IVAL(p,16);
finfo->mode = CVAL(p,24);
strcpy(finfo->name,p+27);
pstrcpy(finfo->name,p+27);
}
return(28 + CVAL(p,26));
@ -899,7 +899,7 @@ static int interpret_long_filename(int level,char *p,file_info *finfo)
finfo->mtime = make_unix_date2(p+12);
finfo->size = IVAL(p,16);
finfo->mode = CVAL(p,24);
strcpy(finfo->name,p+31);
pstrcpy(finfo->name,p+31);
}
return(32 + CVAL(p,30));
@ -913,7 +913,7 @@ static int interpret_long_filename(int level,char *p,file_info *finfo)
finfo->mtime = make_unix_date2(p+16);
finfo->size = IVAL(p,20);
finfo->mode = CVAL(p,28);
strcpy(finfo->name,p+33);
pstrcpy(finfo->name,p+33);
}
return(SVAL(p,4)+4);
@ -926,7 +926,7 @@ static int interpret_long_filename(int level,char *p,file_info *finfo)
finfo->mtime = make_unix_date2(p+16);
finfo->size = IVAL(p,20);
finfo->mode = CVAL(p,28);
strcpy(finfo->name,p+37);
pstrcpy(finfo->name,p+37);
}
return(SVAL(p,4)+4);
@ -994,22 +994,22 @@ static void dir_action(char *inbuf,char *outbuf,int attribute,file_info *finfo,B
fn(finfo);
}
strcpy(sav_dir,cur_dir);
strcat(cur_dir,finfo->name);
strcat(cur_dir,"\\");
strcpy(mask2,cur_dir);
pstrcpy(sav_dir,cur_dir);
pstrcat(cur_dir,finfo->name);
pstrcat(cur_dir,"\\");
pstrcpy(mask2,cur_dir);
if (!fn)
DEBUG(0,("\n%s\n",CNV_LANG(cur_dir)));
strcat(mask2,"*");
pstrcat(mask2,"*");
if (longdir)
do_long_dir(inbuf,outbuf,mask2,attribute,fn,True, dirstoo);
else
do_dir(inbuf,outbuf,mask2,attribute,fn,True, dirstoo);
strcpy(cur_dir,sav_dir);
pstrcpy(cur_dir,sav_dir);
}
else
{
@ -1031,19 +1031,19 @@ static void cmd_dir(char *inbuf,char *outbuf)
char *p=buf;
dir_total = 0;
strcpy(mask,cur_dir);
pstrcpy(mask,cur_dir);
if(mask[strlen(mask)-1]!='\\')
strcat(mask,"\\");
pstrcat(mask,"\\");
if (next_token(NULL,buf,NULL))
{
if (*p == '\\')
strcpy(mask,p);
pstrcpy(mask,p);
else
strcat(mask,p);
pstrcat(mask,p);
}
else {
strcat(mask,"*");
pstrcat(mask,"*");
}
do_dir(inbuf,outbuf,mask,attribute,NULL,recurse,False);
@ -1109,7 +1109,7 @@ static void do_get(char *rname,char *lname,file_info *finfo1)
SSVAL(outbuf,smb_vwv12,0xffff);
p = smb_buf(outbuf);
strcpy(p,rname);
pstrcpy(p,rname);
p = skip_string(p,1);
/* do a chained openX with a readX? */
@ -1162,7 +1162,7 @@ static void do_get(char *rname,char *lname,file_info *finfo1)
return;
}
strcpy(finfo.name,rname);
pstrcpy(finfo.name,rname);
if (!finfo1)
{
@ -1423,7 +1423,7 @@ static void do_get(char *rname,char *lname,file_info *finfo1)
SIVALS(outbuf,smb_vwv1,0);
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,rname);
pstrcpy(p,rname);
p += strlen(p)+1;
*p++ = 4;
*p = 0;
@ -1460,8 +1460,8 @@ static void cmd_get(char *dum_in, char *dum_out)
pstring rname;
char *p;
strcpy(rname,cur_dir);
strcat(rname,"\\");
pstrcpy(rname,cur_dir);
pstrcat(rname,"\\");
p = rname + strlen(rname);
@ -1469,7 +1469,7 @@ static void cmd_get(char *dum_in, char *dum_out)
DEBUG(0,("get <filename>\n"));
return;
}
strcpy(lname,p);
pstrcpy(lname,p);
dos_clean_name(rname);
next_token(NULL,lname,NULL);
@ -1519,10 +1519,10 @@ static void do_mget(file_info *finfo)
return;
}
strcpy(saved_curdir,cur_dir);
pstrcpy(saved_curdir,cur_dir);
strcat(cur_dir,finfo->name);
strcat(cur_dir,"\\");
pstrcat(cur_dir,finfo->name);
pstrcat(cur_dir,"\\");
unix_format(finfo->name);
{
@ -1533,7 +1533,7 @@ static void do_mget(file_info *finfo)
sys_mkdir(finfo->name,0777) != 0)
{
DEBUG(0,("failed to create directory %s\n",CNV_LANG(finfo->name)));
strcpy(cur_dir,saved_curdir);
pstrcpy(cur_dir,saved_curdir);
free(inbuf);free(outbuf);
return;
}
@ -1541,25 +1541,25 @@ static void do_mget(file_info *finfo)
if (sys_chdir(finfo->name) != 0)
{
DEBUG(0,("failed to chdir to directory %s\n",CNV_LANG(finfo->name)));
strcpy(cur_dir,saved_curdir);
pstrcpy(cur_dir,saved_curdir);
free(inbuf);free(outbuf);
return;
}
}
strcpy(mget_mask,cur_dir);
strcat(mget_mask,"*");
pstrcpy(mget_mask,cur_dir);
pstrcat(mget_mask,"*");
do_dir((char *)inbuf,(char *)outbuf,
mget_mask,aSYSTEM | aHIDDEN | aDIR,do_mget,False, False);
chdir("..");
strcpy(cur_dir,saved_curdir);
pstrcpy(cur_dir,saved_curdir);
free(inbuf);free(outbuf);
}
else
{
strcpy(rname,cur_dir);
strcat(rname,finfo->name);
pstrcpy(rname,cur_dir);
pstrcat(rname,finfo->name);
do_get(rname,finfo->name,finfo);
}
}
@ -1572,12 +1572,12 @@ static void cmd_more(char *dum_in, char *dum_out)
fstring rname,lname,tmpname,pager_cmd;
char *pager;
strcpy(rname,cur_dir);
strcat(rname,"\\");
fstrcpy(rname,cur_dir);
fstrcat(rname,"\\");
slprintf(tmpname,
sizeof(fstring)-1,
"%s/smbmore.%d",tmpdir(),(int)getpid());
strcpy(lname,tmpname);
fstrcpy(lname,tmpname);
if (!next_token(NULL,rname+strlen(rname),NULL)) {
DEBUG(0,("more <filename>\n"));
@ -1616,23 +1616,23 @@ static void cmd_mget(char *inbuf,char *outbuf)
while (next_token(NULL,p,NULL))
{
strcpy(mget_mask,cur_dir);
pstrcpy(mget_mask,cur_dir);
if(mget_mask[strlen(mget_mask)-1]!='\\')
strcat(mget_mask,"\\");
pstrcat(mget_mask,"\\");
if (*p == '\\')
strcpy(mget_mask,p);
pstrcpy(mget_mask,p);
else
strcat(mget_mask,p);
pstrcat(mget_mask,p);
do_dir((char *)inbuf,(char *)outbuf,mget_mask,attribute,do_mget,False,False);
}
if (! *mget_mask)
{
strcpy(mget_mask,cur_dir);
pstrcpy(mget_mask,cur_dir);
if(mget_mask[strlen(mget_mask)-1]!='\\')
strcat(mget_mask,"\\");
strcat(mget_mask,"*");
pstrcat(mget_mask,"\\");
pstrcat(mget_mask,"*");
do_dir((char *)inbuf,(char *)outbuf,mget_mask,attribute,do_mget,False,False);
}
}
@ -1664,7 +1664,7 @@ static BOOL do_mkdir(char *name)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,name);
pstrcpy(p,name);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -1692,7 +1692,7 @@ static void cmd_mkdir(char *inbuf,char *outbuf)
fstring buf;
char *p=buf;
strcpy(mask,cur_dir);
pstrcpy(mask,cur_dir);
if (!next_token(NULL,p,NULL))
{
@ -1700,7 +1700,7 @@ static void cmd_mkdir(char *inbuf,char *outbuf)
DEBUG(0,("mkdir <dirname>\n"));
return;
}
strcat(mask,p);
pstrcat(mask,p);
if (recurse)
{
@ -1708,17 +1708,17 @@ static void cmd_mkdir(char *inbuf,char *outbuf)
pstring ddir2;
*ddir2 = 0;
strcpy(ddir,mask);
pstrcpy(ddir,mask);
trim_string(ddir,".",NULL);
p = strtok(ddir,"/\\");
while (p)
{
strcat(ddir2,p);
pstrcat(ddir2,p);
if (!chkpath(ddir2,False))
{
do_mkdir(ddir2);
}
strcat(ddir2,"\\");
pstrcat(ddir2,"\\");
p = strtok(NULL,"/\\");
}
}
@ -1847,7 +1847,7 @@ static void do_put(char *rname,char *lname,file_info *finfo)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,rname);
pstrcpy(p,rname);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -1969,8 +1969,8 @@ static void cmd_put(char *dum_in, char *dum_out)
file_info finfo;
finfo = def_finfo;
strcpy(rname,cur_dir);
strcat(rname,"\\");
pstrcpy(rname,cur_dir);
pstrcat(rname,"\\");
if (!next_token(NULL,p,NULL))
@ -1978,12 +1978,12 @@ static void cmd_put(char *dum_in, char *dum_out)
DEBUG(0,("put <filename>\n"));
return;
}
strcpy(lname,p);
pstrcpy(lname,p);
if (next_token(NULL,p,NULL))
strcat(rname,p);
pstrcat(rname,p);
else
strcat(rname,lname);
pstrcat(rname,lname);
dos_clean_name(rname);
@ -2012,7 +2012,7 @@ static BOOL seek_list(FILE *f,char *name)
trim_string(s,"./",NULL);
if (strncmp(s,name,strlen(name)) != 0)
{
strcpy(name,s);
pstrcpy(name,s);
return(True);
}
}
@ -2026,7 +2026,7 @@ static BOOL seek_list(FILE *f,char *name)
****************************************************************************/
static void cmd_select(char *dum_in, char *dum_out)
{
strcpy(fileselection,"");
pstrcpy(fileselection,"");
next_token(NULL,fileselection,NULL);
}
@ -2082,16 +2082,16 @@ static void cmd_mput(char *dum_in, char *dum_out)
"Put directory %s? ",lname);
if (prompt && !yesno(quest))
{
strcat(lname,"/");
pstrcat(lname,"/");
if (!seek_list(f,lname))
break;
goto again1;
}
strcpy(rname,cur_dir);
strcat(rname,lname);
pstrcpy(rname,cur_dir);
pstrcat(rname,lname);
if (!chkpath(rname,False) && !do_mkdir(rname)) {
strcat(lname,"/");
pstrcat(lname,"/");
if (!seek_list(f,lname))
break;
goto again1;
@ -2105,8 +2105,8 @@ static void cmd_mput(char *dum_in, char *dum_out)
"Put file %s? ",lname);
if (prompt && !yesno(quest)) continue;
strcpy(rname,cur_dir);
strcat(rname,lname);
pstrcpy(rname,cur_dir);
pstrcat(rname,lname);
}
dos_format(rname);
@ -2139,9 +2139,9 @@ static void do_cancel(int job)
p = param;
SSVAL(p,0,81); /* DosPrintJobDel() */
p += 2;
strcpy(p,"W");
pstrcpy(p,"W");
p = skip_string(p,1);
strcpy(p,"");
pstrcpy(p,"");
p = skip_string(p,1);
SSVAL(p,0,job);
p += 2;
@ -2221,13 +2221,13 @@ static void cmd_print(char *inbuf,char *outbuf )
return;
}
strcpy(rname,lname);
pstrcpy(rname,lname);
p = strrchr(rname,'/');
if (p)
{
pstring tname;
strcpy(tname,p+1);
strcpy(rname,tname);
pstrcpy(tname,p+1);
pstrcpy(rname,tname);
}
if ((int)strlen(rname) > 14)
@ -2236,7 +2236,7 @@ static void cmd_print(char *inbuf,char *outbuf )
if (strequal(lname,"-"))
{
f = stdin;
strcpy(rname,"stdin");
pstrcpy(rname,"stdin");
}
dos_clean_name(rname);
@ -2253,7 +2253,7 @@ static void cmd_print(char *inbuf,char *outbuf )
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,rname);
pstrcpy(p,rname);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -2391,13 +2391,13 @@ static void cmd_queue(char *inbuf,char *outbuf )
{
switch (CVAL(p,4))
{
case 0x01: sprintf(status,"held or stopped"); break;
case 0x02: sprintf(status,"printing"); break;
case 0x03: sprintf(status,"awaiting print"); break;
case 0x04: sprintf(status,"in intercept"); break;
case 0x05: sprintf(status,"file had error"); break;
case 0x06: sprintf(status,"printer error"); break;
default: sprintf(status,"unknown"); break;
case 0x01: safe_strcpy(status,"held or stopped", sizeof(status)-1); break;
case 0x02: safe_strcpy(status,"printing",sizeof(status)-1); break;
case 0x03: safe_strcpy(status,"awaiting print", sizeof(status)-1); break;
case 0x04: safe_strcpy(status,"in intercept",sizeof(status)-1); break;
case 0x05: safe_strcpy(status,"file had error",sizeof(status)-1); break;
case 0x06: safe_strcpy(status,"printer error",sizeof(status)-1); break;
default: safe_strcpy(status,"unknown",sizeof(status)-1); break;
}
DEBUG(0,("%-6d %-16.16s %-9d %s\n",
@ -2432,16 +2432,16 @@ static void cmd_p_queue_4(char *inbuf,char *outbuf )
p = param;
SSVAL(p,0,76); /* API function number 76 (DosPrintJobEnum) */
p += 2;
strcpy(p,"zWrLeh"); /* parameter description? */
pstrcpy(p,"zWrLeh"); /* parameter description? */
p = skip_string(p,1);
strcpy(p,"WWzWWDDzz"); /* returned data format */
pstrcpy(p,"WWzWWDDzz"); /* returned data format */
p = skip_string(p,1);
strcpy(p,strrchr(service,'\\')+1); /* name of queue */
pstrcpy(p,strrchr(service,'\\')+1); /* name of queue */
p = skip_string(p,1);
SSVAL(p,0,2); /* API function level 2, PRJINFO_2 data structure */
SSVAL(p,2,1000); /* size of bytes of returned data buffer */
p += 4;
strcpy(p,""); /* subformat */
pstrcpy(p,""); /* subformat */
p = skip_string(p,1);
DEBUG(1,("Calling DosPrintJobEnum()...\n"));
@ -2467,9 +2467,9 @@ static void cmd_p_queue_4(char *inbuf,char *outbuf )
char *JobName;
char *JobTimeStr;
time_t JobTime;
char PrinterName[20];
fstring PrinterName;
strcpy(PrinterName,strrchr(service,'\\')+1); /* name of queue */
fstrcpy(PrinterName,strrchr(service,'\\')+1); /* name of queue */
strlower(PrinterName); /* in lower case */
p = rdata; /* received data */
@ -2539,16 +2539,16 @@ static void cmd_qinfo(char *inbuf,char *outbuf )
p = param;
SSVAL(p,0,70); /* API function number 70 (DosPrintQGetInfo) */
p += 2;
strcpy(p,"zWrLh"); /* parameter description? */
pstrcpy(p,"zWrLh"); /* parameter description? */
p = skip_string(p,1);
strcpy(p,"zWWWWzzzzWWzzl"); /* returned data format */
pstrcpy(p,"zWWWWzzzzWWzzl"); /* returned data format */
p = skip_string(p,1);
strcpy(p,strrchr(service,'\\')+1); /* name of queue */
pstrcpy(p,strrchr(service,'\\')+1); /* name of queue */
p = skip_string(p,1);
SSVAL(p,0,3); /* API function level 3, just queue info, no job info */
SSVAL(p,2,1000); /* size of bytes of returned data buffer */
p += 4;
strcpy(p,""); /* subformat */
pstrcpy(p,""); /* subformat */
p = skip_string(p,1);
DEBUG(1,("Calling DosPrintQueueGetInfo()...\n"));
@ -2634,8 +2634,8 @@ static void do_del(file_info *finfo)
char *inbuf,*outbuf;
pstring mask;
strcpy(mask,cur_dir);
strcat(mask,finfo->name);
pstrcpy(mask,cur_dir);
pstrcat(mask,finfo->name);
if (finfo->mode & aDIR)
return;
@ -2660,7 +2660,7 @@ static void do_del(file_info *finfo)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,mask);
pstrcpy(p,mask);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -2684,14 +2684,14 @@ static void cmd_del(char *inbuf,char *outbuf )
if (recurse)
attribute |= aDIR;
strcpy(mask,cur_dir);
pstrcpy(mask,cur_dir);
if (!next_token(NULL,buf,NULL))
{
DEBUG(0,("del <filename>\n"));
return;
}
strcat(mask,buf);
pstrcat(mask,buf);
do_dir((char *)inbuf,(char *)outbuf,mask,attribute,do_del,False,False);
}
@ -2706,14 +2706,14 @@ static void cmd_rmdir(char *inbuf,char *outbuf )
fstring buf;
char *p;
strcpy(mask,cur_dir);
pstrcpy(mask,cur_dir);
if (!next_token(NULL,buf,NULL))
{
DEBUG(0,("rmdir <dirname>\n"));
return;
}
strcat(mask,buf);
pstrcat(mask,buf);
bzero(outbuf,smb_size);
set_message(outbuf,0,2 + strlen(mask),True);
@ -2725,7 +2725,7 @@ static void cmd_rmdir(char *inbuf,char *outbuf )
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,mask);
pstrcpy(p,mask);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -2747,16 +2747,16 @@ static void cmd_rename(char *inbuf,char *outbuf )
fstring buf,buf2;
char *p;
strcpy(src,cur_dir);
strcpy(dest,cur_dir);
pstrcpy(src,cur_dir);
pstrcpy(dest,cur_dir);
if (!next_token(NULL,buf,NULL) || !next_token(NULL,buf2,NULL))
{
DEBUG(0,("rename <src> <dest>\n"));
return;
}
strcat(src,buf);
strcat(dest,buf2);
pstrcat(src,buf);
pstrcat(dest,buf2);
bzero(outbuf,smb_size);
set_message(outbuf,1,4 + strlen(src) + strlen(dest),True);
@ -2768,10 +2768,10 @@ static void cmd_rename(char *inbuf,char *outbuf )
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,src);
pstrcpy(p,src);
p = skip_string(p,1);
*p++ = 4;
strcpy(p,dest);
pstrcpy(p,dest);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -2887,13 +2887,13 @@ static void cmd_printmode(char *dum_in, char *dum_out)
switch(printmode)
{
case 0:
strcpy(mode,"text");
fstrcpy(mode,"text");
break;
case 1:
strcpy(mode,"graphics");
fstrcpy(mode,"graphics");
break;
default:
sprintf(mode,"%d",printmode);
slprintf(mode,sizeof(mode)-1,"%d",printmode);
break;
}
@ -2938,9 +2938,9 @@ static BOOL browse_host(BOOL sort)
p = param;
SSVAL(p,0,0); /* api number */
p += 2;
strcpy(p,"WrLeh");
pstrcpy(p,"WrLeh");
p = skip_string(p,1);
strcpy(p,"B13BWz");
pstrcpy(p,"B13BWz");
p = skip_string(p,1);
SSVAL(p,0,1);
SSVAL(p,2,BUFFER_SIZE);
@ -2982,13 +2982,13 @@ static BOOL browse_host(BOOL sort)
switch (type)
{
case STYPE_DISKTREE:
strcpy(typestr,"Disk"); break;
fstrcpy(typestr,"Disk"); break;
case STYPE_PRINTQ:
strcpy(typestr,"Printer"); break;
fstrcpy(typestr,"Printer"); break;
case STYPE_DEVICE:
strcpy(typestr,"Device"); break;
fstrcpy(typestr,"Device"); break;
case STYPE_IPC:
strcpy(typestr,"IPC"); break;
fstrcpy(typestr,"IPC"); break;
}
printf("\t%-15.15s%-10.10s%s\n",
@ -3030,9 +3030,9 @@ static void server_info(void)
p = param;
SSVAL(p,0,63); /* NetServerGetInfo()? */
p += 2;
strcpy(p,"WrLh");
pstrcpy(p,"WrLh");
p = skip_string(p,1);
strcpy(p,"zzzBBzz");
pstrcpy(p,"zzzBBzz");
p = skip_string(p,1);
SSVAL(p,0,10); /* level 10 */
SSVAL(p,2,1000);
@ -3092,10 +3092,10 @@ static BOOL list_servers(char *wk_grp)
SSVAL(p,0,0x68); /* api number */
p += 2;
strcpy(p,generic_request?"WrLehDO":"WrLehDz");
pstrcpy(p,generic_request?"WrLehDO":"WrLehDz");
p = skip_string(p,1);
strcpy(p,"B16BBDz");
pstrcpy(p,"B16BBDz");
p = skip_string(p,1);
SSVAL(p,0,uLevel);
@ -3106,7 +3106,7 @@ static BOOL list_servers(char *wk_grp)
p += 4;
if (!generic_request) {
strcpy(p, wk_grp);
pstrcpy(p, wk_grp);
p = skip_string(p,1);
}
@ -3551,7 +3551,7 @@ static void usage(char *pname)
int save_debuglevel = -1;
#ifdef KANJI
strcpy(term_code, KANJI);
pstrcpy(term_code, KANJI);
#else /* KANJI */
*term_code = 0;
#endif /* KANJI */
@ -3577,7 +3577,7 @@ static void usage(char *pname)
if (getenv("USER"))
{
strcpy(username,getenv("USER"));
pstrcpy(username,getenv("USER"));
/* modification to support userid%passwd syntax in the USER var
25.Aug.97, jdblair@uab.edu */
@ -3585,7 +3585,7 @@ static void usage(char *pname)
if ((p=strchr(username,'%')))
{
*p = 0;
strcpy(password,p+1);
pstrcpy(password,p+1);
got_pass = True;
memset(strchr(getenv("USER"),'%')+1,'X',strlen(password));
}
@ -3596,11 +3596,11 @@ static void usage(char *pname)
25.Aug.97, jdblair@uab.edu */
if (getenv("PASSWD"))
strcpy(password,getenv("PASSWD"));
pstrcpy(password,getenv("PASSWD"));
if (*username == 0 && getenv("LOGNAME"))
{
strcpy(username,getenv("LOGNAME"));
pstrcpy(username,getenv("LOGNAME"));
strupper(username);
}
@ -3613,7 +3613,7 @@ static void usage(char *pname)
if (*argv[1] != '-')
{
strcpy(service,argv[1]);
pstrcpy(service,argv[1]);
/* Convert any '/' characters in the service name to '\' characters */
string_replace( service, '/','\\');
argc--;
@ -3638,7 +3638,7 @@ static void usage(char *pname)
if (argc > 1 && (*argv[1] != '-'))
{
got_pass = True;
strcpy(password,argv[1]);
pstrcpy(password,argv[1]);
memset(argv[1],'X',strlen(argv[1]));
argc--;
argv++;
@ -3653,19 +3653,19 @@ static void usage(char *pname)
max_protocol = interpret_protocol(optarg,max_protocol);
break;
case 'O':
strcpy(user_socket_options,optarg);
pstrcpy(user_socket_options,optarg);
break;
case 'R':
pstrcpy(new_name_resolve_order, optarg);
break;
case 'S':
strcpy(desthost,optarg);
pstrcpy(desthost,optarg);
strupper(desthost);
nt_domain_logon = True;
break;
case 'M':
name_type = 0x03; /* messages are sent to NetBIOS name type 0x3 */
strcpy(desthost,optarg);
pstrcpy(desthost,optarg);
strupper(desthost);
message = True;
break;
@ -3673,7 +3673,7 @@ static void usage(char *pname)
iface_set_default(NULL,optarg,NULL);
break;
case 'D':
strcpy(base_directory,optarg);
pstrcpy(base_directory,optarg);
break;
case 'T':
if (!tar_parseargs(argc, argv, optarg, optind)) {
@ -3682,20 +3682,20 @@ static void usage(char *pname)
}
break;
case 'i':
strcpy(scope,optarg);
pstrcpy(scope,optarg);
break;
case 'L':
got_pass = True;
strcpy(query_host,optarg);
pstrcpy(query_host,optarg);
break;
case 'U':
{
char *lp;
strcpy(username,optarg);
pstrcpy(username,optarg);
if ((lp=strchr(username,'%')))
{
*lp = 0;
strcpy(password,lp+1);
pstrcpy(password,lp+1);
got_pass = True;
memset(strchr(optarg,'%')+1,'X',strlen(password));
}
@ -3703,7 +3703,7 @@ static void usage(char *pname)
break;
case 'W':
strcpy(workgroup,optarg);
pstrcpy(workgroup,optarg);
break;
case 'E':
dbf = stderr;
@ -3716,7 +3716,7 @@ static void usage(char *pname)
}
break;
case 'n':
strcpy(global_myname,optarg);
pstrcpy(global_myname,optarg);
break;
case 'N':
got_pass = True;
@ -3746,10 +3746,10 @@ static void usage(char *pname)
exit(0);
break;
case 's':
strcpy(servicesf, optarg);
pstrcpy(servicesf, optarg);
break;
case 't':
strcpy(term_code, optarg);
pstrcpy(term_code, optarg);
break;
default:
usage(pname);
@ -3787,7 +3787,7 @@ static void usage(char *pname)
interpret_coding_system(term_code);
if (*workgroup == 0)
strcpy(workgroup,lp_workgroup());
pstrcpy(workgroup,lp_workgroup());
load_interfaces();
get_myname((*global_myname)?NULL:global_myname,NULL);

View File

@ -320,7 +320,7 @@ BOOL cli_send_session_request(char *inbuf,char *outbuf)
int len = 4;
/* send a session request (RFC 8002) */
strcpy(dest,desthost);
fstrcpy(dest,desthost);
p = strchr(dest,'.');
if (p) *p = 0;
@ -454,11 +454,11 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
if (strstr(service,"IPC$")) connect_as_ipc = True;
#endif
strcpy(dev,"A:");
pstrcpy(dev,"A:");
if (connect_as_printer)
strcpy(dev,"LPT1:");
pstrcpy(dev,"LPT1:");
if (connect_as_ipc)
strcpy(dev,"IPC");
pstrcpy(dev,"IPC");
if (start_session && !cli_send_session_request(inbuf,outbuf))
@ -490,7 +490,7 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
numprots++)
{
*p++ = 2;
strcpy(p,prots[numprots].name);
pstrcpy(p,prots[numprots].name);
p += strlen(p) + 1;
}
}
@ -593,7 +593,7 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
{
fstring pword;
int passlen = strlen(pass)+1;
strcpy(pword,pass);
fstrcpy(pword,pass);
if (doencrypt && *pass) {
DEBUG(3,("Using encrypted passwords\n"));
@ -602,7 +602,7 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
}
/* if in share level security then don't send a password now */
if (!(opt.sec_mode & 1)) {strcpy(pword, "");passlen=1;}
if (!(opt.sec_mode & 1)) {fstrcpy(pword, "");passlen=1;}
/* send a session setup command */
bzero(outbuf,smb_size);
@ -621,7 +621,7 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
p = smb_buf(outbuf);
memcpy(p,pword,passlen);
p += passlen;
strcpy(p,username);
pstrcpy(p,username);
} else {
if (!doencrypt) passlen--;
/* for Win95 */
@ -638,10 +638,10 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
SSVAL(outbuf,smb_vwv8,0);
p = smb_buf(outbuf);
memcpy(p,pword,passlen); p += SVAL(outbuf,smb_vwv7);
strcpy(p,username);p = skip_string(p,1);
strcpy(p,workgroup);p = skip_string(p,1);
strcpy(p,"Unix");p = skip_string(p,1);
strcpy(p,"Samba");p = skip_string(p,1);
pstrcpy(p,username);p = skip_string(p,1);
pstrcpy(p,workgroup);p = skip_string(p,1);
pstrcpy(p,"Unix");p = skip_string(p,1);
pstrcpy(p,"Samba");p = skip_string(p,1);
set_message(outbuf,13,PTR_DIFF(p,smb_buf(outbuf)),False);
}
@ -717,7 +717,7 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
{
int passlen = strlen(pass)+1;
fstring pword;
strcpy(pword,pass);
fstrcpy(pword,pass);
if (doencrypt && *pass) {
passlen=24;
@ -726,7 +726,7 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
/* if in user level security then don't send a password now */
if ((opt.sec_mode & 1)) {
strcpy(pword, ""); passlen=1;
fstrcpy(pword, ""); passlen=1;
}
if (Protocol <= PROTOCOL_COREPLUS) {
@ -736,13 +736,13 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
p = smb_buf(outbuf);
*p++ = 0x04;
strcpy(p, service);
pstrcpy(p, service);
p = skip_string(p,1);
*p++ = 0x04;
memcpy(p,pword,passlen);
p += passlen;
*p++ = 0x04;
strcpy(p, dev);
pstrcpy(p, dev);
}
else {
set_message(outbuf,4,2 + strlen(service) + passlen + strlen(dev),True);
@ -755,9 +755,9 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
p = smb_buf(outbuf);
memcpy(p,pword,passlen);
p += passlen;
strcpy(p,service);
pstrcpy(p,service);
p = skip_string(p,1);
strcpy(p,dev);
pstrcpy(p,dev);
}
}
@ -771,7 +771,7 @@ BOOL cli_send_login(char *inbuf,char *outbuf,BOOL start_session,BOOL use_setup,
Protocol >= PROTOCOL_LANMAN1)
{
DEBUG(2,("first SMBtconX failed, trying again. %s\n",smb_errstr(inbuf)));
strcpy(pass,"");
pstrcpy(pass,"");
goto again2;
}
@ -873,13 +873,13 @@ BOOL cli_open_sockets(int port )
}
else
{
strcpy(service2,service);
pstrcpy(service2,service);
host = strtok(service2,"\\/");
if (!host) {
DEBUG(0,("Badly formed host name\n"));
return(False);
}
strcpy(desthost,host);
pstrcpy(desthost,host);
}
if (!(*global_myname)) {

View File

@ -248,7 +248,7 @@ static void writetarheader(int f, char *aname, int size, time_t mtime,
/* write out a "standard" tar format header */
hb.dbuf.name[NAMSIZ-1]='\0';
strcpy(hb.dbuf.mode, amode);
fstrcpy(hb.dbuf.mode, amode);
oct_it(0L, 8, hb.dbuf.uid);
oct_it(0L, 8, hb.dbuf.gid);
oct_it((long) size, 13, hb.dbuf.size);
@ -309,7 +309,7 @@ static long readtarheader(union hblock *hb, file_info2 *finfo, char *prefix)
}
strcpy(finfo->name, prefix);
pstrcpy(finfo->name, prefix);
/* use l + 1 to do the null too; do prefix - prefcnt to zap leading slash */
unfixtarname(finfo->name + strlen(prefix), hb->dbuf.name,
@ -574,9 +574,9 @@ static int do_setrtime(char *fname, int mtime)
}
strcpy(name, fname);
strcpy(fname, "\\");
strcat(fname, name);
pstrcpy(name, fname);
pstrcpy(fname, "\\");
pstrcat(fname, name);
inbuf = (char *)malloc(BUFFER_SIZE + SAFETY_MARGIN);
outbuf = (char *)malloc(BUFFER_SIZE + SAFETY_MARGIN);
@ -599,7 +599,7 @@ static int do_setrtime(char *fname, int mtime)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p, fname);
pstrcpy(p, fname);
p+= (strlen(fname)+1);
*p++ = 4;
@ -634,9 +634,9 @@ static int do_setrattr(char *fname, int attr, int setit)
pstring name;
int fattr;
strcpy(name,fname);
strcpy(fname,"\\");
strcat(fname,name);
pstrcpy(name,fname);
pstrcpy(fname,"\\");
pstrcat(fname,name);
inbuf = (char *)malloc(BUFFER_SIZE + SAFETY_MARGIN);
outbuf = (char *)malloc(BUFFER_SIZE + SAFETY_MARGIN);
@ -657,7 +657,7 @@ static int do_setrattr(char *fname, int attr, int setit)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,fname);
pstrcpy(p,fname);
p += (strlen(fname)+1);
*p++ = 4;
@ -695,7 +695,7 @@ static int do_setrattr(char *fname, int attr, int setit)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,fname);
pstrcpy(p,fname);
p += (strlen(fname)+1);
*p++ = 4;
@ -736,7 +736,7 @@ static BOOL smbcreat(file_info2 finfo, int *fnum, char *inbuf, char *outbuf)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,finfo.name);
pstrcpy(p,finfo.name);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -844,7 +844,7 @@ static BOOL smbchkpath(char *fname, char *inbuf, char *outbuf)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,fname);
pstrcpy(p,fname);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -871,7 +871,7 @@ static BOOL smbmkdir(char *fname, char *inbuf, char *outbuf)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,fname);
pstrcpy(p,fname);
send_smb(Client,outbuf);
client_receive_smb(Client,inbuf,CLIENT_TIMEOUT);
@ -913,7 +913,7 @@ static BOOL ensurepath(char *fname, char *inbuf, char *outbuf)
/* fname copied to ffname so can strtok */
strcpy(ffname, fname);
pstrcpy(ffname, fname);
/* do a `basename' on ffname, so don't try and make file name directory */
if ((basehack=strrchr(ffname, '\\')) == NULL)
@ -925,7 +925,7 @@ static BOOL ensurepath(char *fname, char *inbuf, char *outbuf)
while (p)
{
strcat(partpath, p);
pstrcat(partpath, p);
if (!smbchkpath(partpath, inbuf, outbuf)) {
if (!smbmkdir(partpath, inbuf, outbuf))
@ -938,7 +938,7 @@ static BOOL ensurepath(char *fname, char *inbuf, char *outbuf)
}
strcat(partpath, "\\");
pstrcat(partpath, "\\");
p = strtok(NULL,"/\\");
}
@ -1014,7 +1014,7 @@ static void do_atar(char *rname,char *lname,file_info *finfo1)
SSVAL(outbuf,smb_vwv8,1);
p = smb_buf(outbuf);
strcpy(p,rname);
pstrcpy(p,rname);
p = skip_string(p,1);
dos_clean_name(rname);
@ -1052,7 +1052,7 @@ static void do_atar(char *rname,char *lname,file_info *finfo1)
return;
}
strcpy(finfo.name,rname);
pstrcpy(finfo.name,rname);
if (!finfo1)
{
finfo.mode = SVAL(inbuf,smb_vwv3);
@ -1388,11 +1388,11 @@ static void do_tar(file_info *finfo)
if (!tar_excl && clipn) {
pstring exclaim;
strcpy(exclaim, cur_dir);
pstrcpy(exclaim, cur_dir);
*(exclaim+strlen(exclaim)-1)='\0';
strcat(exclaim, "\\");
strcat(exclaim, finfo->name);
pstrcat(exclaim, "\\");
pstrcat(exclaim, finfo->name);
DEBUG(5, ("...tar_re_search: %d\n", tar_re_search));
@ -1422,10 +1422,10 @@ static void do_tar(file_info *finfo)
return;
}
strcpy(saved_curdir,cur_dir);
pstrcpy(saved_curdir,cur_dir);
strcat(cur_dir,finfo->name);
strcat(cur_dir,"\\");
pstrcat(cur_dir,finfo->name);
pstrcat(cur_dir,"\\");
DEBUG(5, ("Writing a dir, Name = %s\n", cur_dir));
@ -1433,16 +1433,16 @@ static void do_tar(file_info *finfo)
* 40755 */
writetarheader(tarhandle, cur_dir, 0, finfo->mtime, "040755 \0", '5');
ntarf++; /* Make sure we have a file on there */
strcpy(mtar_mask,cur_dir);
strcat(mtar_mask,"*");
pstrcpy(mtar_mask,cur_dir);
pstrcat(mtar_mask,"*");
/* do_dir((char *)inbuf,(char *)outbuf,mtar_mask,attribute,do_tar,recurse,True); */
strcpy(cur_dir,saved_curdir);
pstrcpy(cur_dir,saved_curdir);
free(inbuf);free(outbuf);
}
else
{
strcpy(rname,cur_dir);
strcat(rname,finfo->name);
pstrcpy(rname,cur_dir);
pstrcat(rname,finfo->name);
do_atar(rname,finfo->name,finfo);
}
}
@ -2060,8 +2060,8 @@ void cmd_setmode(char *dum_in, char *dum_out)
return;
}
strcpy(fname, cur_dir);
strcat(fname, buf);
pstrcpy(fname, cur_dir);
pstrcat(fname, buf);
while (next_token(NULL,buf,NULL)) {
q=buf;
@ -2153,29 +2153,29 @@ int process_tar(char *inbuf, char *outbuf)
if (strrchr(cliplist[i], '\\')) {
pstring saved_dir;
strcpy(saved_dir, cur_dir);
pstrcpy(saved_dir, cur_dir);
if (*cliplist[i]=='\\') {
strcpy(tarmac, cliplist[i]);
pstrcpy(tarmac, cliplist[i]);
} else {
strcpy(tarmac, cur_dir);
strcat(tarmac, cliplist[i]);
pstrcpy(tarmac, cur_dir);
pstrcat(tarmac, cliplist[i]);
}
strcpy(cur_dir, tarmac);
pstrcpy(cur_dir, tarmac);
*(strrchr(cur_dir, '\\')+1)='\0';
do_dir((char *)inbuf,(char *)outbuf,tarmac,attribute,do_tar,recurse, True);
strcpy(cur_dir,saved_dir);
pstrcpy(cur_dir,saved_dir);
} else {
strcpy(tarmac, cur_dir);
strcat(tarmac, cliplist[i]);
pstrcpy(tarmac, cur_dir);
pstrcat(tarmac, cliplist[i]);
do_dir((char *)inbuf,(char *)outbuf,tarmac,attribute,do_tar,recurse, True);
}
}
} else {
pstring mask;
strcpy(mask,cur_dir);
strcat(mask,"\\*");
pstrcpy(mask,cur_dir);
pstrcat(mask,"\\*");
do_dir((char *)inbuf,(char *)outbuf,mask,attribute,do_tar,recurse, True);
}

View File

@ -217,7 +217,7 @@ BOOL client_do_nt_login(char *desthost, char *myhostname,
strlower(mach_pwd);
fstrcpy(mach_pwd , myhostname);
strcat(mach_acct, "$");
fstrcat(mach_acct, "$");
SIVAL(clnt_chal.data, 0, 0x11111111);
SIVAL(clnt_chal.data, 4, 0x22222222);

View File

@ -148,7 +148,7 @@ static BOOL chkpath(char *path,BOOL report)
pstring inbuf,outbuf;
char *p;
strcpy(path2,path);
fstrcpy(path2,path);
trim_string(path2,NULL,"\\");
if (!*path2) *path2 = '\\';
@ -160,7 +160,7 @@ static BOOL chkpath(char *path,BOOL report)
p = smb_buf(outbuf);
*p++ = 4;
strcpy(p,path2);
fstrcpy(p,path2);
#if 0
{
@ -346,7 +346,7 @@ static void cmd_mount(char *inbuf,char *outbuf)
* Build the service name to report on the Unix side,
* converting '\' to '/' and ' ' to '_'.
*/
strcpy(share_name, service);
pstrcpy(share_name, service);
string_replace(share_name, '\\', '/');
string_replace(share_name, ' ', '_');
@ -354,8 +354,8 @@ static void cmd_mount(char *inbuf,char *outbuf)
while(next_token(NULL, buf, NULL))
{
strcat(mount_command, " ");
strcat(mount_command, buf);
pstrcat(mount_command, " ");
pstrcat(mount_command, buf);
}
DEBUG(3, ("mount command: %s\n", mount_command));
@ -683,7 +683,7 @@ static void usage(char *pname)
char *p;
#ifdef KANJI
strcpy(term_code, KANJI);
pstrcpy(term_code, KANJI);
#else /* KANJI */
*term_code = 0;
#endif /* KANJI */
@ -707,7 +707,7 @@ static void usage(char *pname)
if (getenv("USER"))
{
strcpy(username,getenv("USER"));
pstrcpy(username,getenv("USER"));
/* modification to support userid%passwd syntax in the USER var
25.Aug.97, jdblair@uab.edu */
@ -715,7 +715,7 @@ static void usage(char *pname)
if ((p=strchr(username,'%')))
{
*p = 0;
strcpy(password,p+1);
pstrcpy(password,p+1);
got_pass = True;
memset(strchr(getenv("USER"),'%')+1,'X',strlen(password));
}
@ -726,11 +726,11 @@ static void usage(char *pname)
25.Aug.97, jdblair@uab.edu */
if (getenv("PASSWD"))
strcpy(password,getenv("PASSWD"));
pstrcpy(password,getenv("PASSWD"));
if (*username == 0 && getenv("LOGNAME"))
{
strcpy(username,getenv("LOGNAME"));
pstrcpy(username,getenv("LOGNAME"));
strupper(username);
}
@ -743,7 +743,7 @@ static void usage(char *pname)
if (*argv[1] != '-')
{
strcpy(service, argv[1]);
pstrcpy(service, argv[1]);
/* Convert any '/' characters in the service name to '\' characters */
string_replace( service, '/','\\');
argc--;
@ -759,7 +759,7 @@ static void usage(char *pname)
if (argc > 1 && (*argv[1] != '-'))
{
got_pass = True;
strcpy(password,argv[1]);
pstrcpy(password,argv[1]);
memset(argv[1],'X',strlen(argv[1]));
argc--;
argv++;
@ -774,10 +774,10 @@ static void usage(char *pname)
max_protocol = interpret_protocol(optarg,max_protocol);
break;
case 'O':
strcpy(user_socket_options,optarg);
pstrcpy(user_socket_options,optarg);
break;
case 'S':
strcpy(desthost,optarg);
pstrcpy(desthost,optarg);
strupper(desthost);
nt_domain_logon = True;
break;
@ -785,19 +785,19 @@ static void usage(char *pname)
iface_set_default(NULL,optarg,NULL);
break;
case 'D':
strcpy(base_directory,optarg);
pstrcpy(base_directory,optarg);
break;
case 'i':
strcpy(scope,optarg);
pstrcpy(scope,optarg);
break;
case 'U':
{
char *lp;
strcpy(username,optarg);
pstrcpy(username,optarg);
if ((lp=strchr(username,'%')))
{
*lp = 0;
strcpy(password,lp+1);
pstrcpy(password,lp+1);
got_pass = True;
memset(strchr(optarg,'%')+1,'X',strlen(password));
}
@ -805,7 +805,7 @@ static void usage(char *pname)
break;
case 'W':
strcpy(workgroup,optarg);
pstrcpy(workgroup,optarg);
break;
case 'E':
dbf = stderr;
@ -818,7 +818,7 @@ static void usage(char *pname)
}
break;
case 'n':
strcpy(global_myname,optarg);
pstrcpy(global_myname,optarg);
break;
case 'N':
got_pass = True;
@ -844,10 +844,10 @@ static void usage(char *pname)
exit(0);
break;
case 's':
strcpy(servicesf, optarg);
pstrcpy(servicesf, optarg);
break;
case 't':
strcpy(term_code, optarg);
pstrcpy(term_code, optarg);
break;
default:
usage(pname);
@ -877,7 +877,7 @@ static void usage(char *pname)
interpret_coding_system(term_code);
if (*workgroup == 0)
strcpy(workgroup,lp_workgroup());
pstrcpy(workgroup,lp_workgroup());
load_interfaces();
get_myname((*global_myname)?NULL:global_myname,NULL);

View File

@ -92,7 +92,7 @@ canonicalize (const char *path)
if (realpath (path, canonical))
return canonical;
strcpy (canonical, path);
pstrcpy (canonical, path);
return canonical;
}

View File

@ -332,6 +332,10 @@ extern int innetgr (const char *, const char *, const char *, const char *);
#define REPLACE_GETPASS
#endif /* REPLACE_GETPASS */
#define USE_SIGPROCMASK
#ifndef QSORT_CAST
#define QSORT_CAST (int (*)(const void *, const void *))
#endif /* QSORT_CAST */
#define HAVE_VSNPRINTF
#endif
@ -547,6 +551,7 @@ char *mktemp(char *); /* No standard include */
#define HAVE_GETTIMEOFDAY
#define HAVE_PATHCONF
#define HAVE_GETGRNAM 1
#define HAVE_VSNPRINTF
#define QSORT_CAST (int (*)(const void *, const void *))
#if !defined(O_SYNC)
#if defined(O_FSYNC)
@ -624,6 +629,7 @@ char *mktemp(char *); /* No standard include */
#define USE_SETRES
#define USE_SYSV_IPC
#define NO_SEMUN
#define HAVE_VALLOC
#define DEFAULT_PRINTING PRINT_HPUX
/* Ken Weiss <krweiss@ucdavis.edu> tells us that SIGCLD_IGNORE is
not good for HPUX */
@ -1353,12 +1359,29 @@ extern int errno;
#define strncasecmp(s1,s2,n) StrnCaseCmp(s1,s2,n)
#endif
#ifndef strcpy
#define strcpy(dest,src) StrCpy(dest,src)
#endif
#ifdef strcpy
#undef strcpy
#endif /* strcpy */
#define strcpy(dest,src) __ERROR__XX__NEVER_USE_STRCPY___;
#ifdef strcat
#undef strcat
#endif /* strcat */
#define strcat(dest,src) __ERROR__XX__NEVER_USE_STRCAT___;
#ifdef sprintf
#undef sprintf
#endif /* sprintf */
#define sprintf __ERROR__XX__NEVER_USE_SPRINTF__>;
#define pstrcpy(d,s) safe_strcpy((d),(s),sizeof(pstring)-1)
#define pstrcat(d,s) safe_strcat((d),(s),sizeof(pstring)-1)
#define fstrcpy(d,s) safe_strcpy((d),(s),sizeof(fstring)-1)
#define fstrcat(d,s) safe_strcat((d),(s),sizeof(fstring)-1)
#if MEM_MAN
#include "mem_man/mem_man.h"
#endif
#endif /* MEM_MAN */
#endif

View File

@ -1170,7 +1170,7 @@ BOOL is_8_3( char *fname, BOOL check_case );
int str_checksum( char *s );
void reset_mangled_cache( void );
BOOL check_mangled_cache( char *s );
void mangle_name_83( char *s );
void mangle_name_83( char *s, int s_len );
BOOL name_map_mangle( char *OutName, BOOL need83, int snum );
/*The following definitions come from md4.c */
@ -2054,7 +2054,9 @@ char *unistr(char *buf);
int unistrncpy(char *dst, char *src, int len);
int unistrcpy(char *dst, char *src);
void fstrcpy(char *dest, char *src);
void pstrcpy(char *dest, char *src);
void fstrcat(char *dest, char *src);
char *safe_strcpy(char *dest, char *src, int maxlength);
char *safe_strcat(char *dest, char *src, int maxlength);
char *align4(char *q, char *base);
char *align2(char *q, char *base);
char *align_offset(char *q, char *base, int align_offset_len);

View File

@ -237,7 +237,7 @@ implemented */
typedef char pstring[1024];
typedef char fstring[128];
typedef fstring string;
/* typedef fstring string; */
/* pipe strings */

View File

@ -200,9 +200,9 @@ static codepage_p load_client_codepage( int client_codepage )
return NULL;
}
strcpy(codepage_file_name, CODEPAGEDIR);
strcat(codepage_file_name, "/");
strcat(codepage_file_name, "codepage.");
pstrcpy(codepage_file_name, CODEPAGEDIR);
pstrcat(codepage_file_name, "/");
pstrcat(codepage_file_name, "codepage.");
slprintf(&codepage_file_name[strlen(codepage_file_name)],
sizeof(pstring)-(strlen(codepage_file_name)+1),
"%03d",

View File

@ -84,7 +84,7 @@ static void do_dirrand(char *name, unsigned char *buf, int buf_len)
struct stat st;
if(strlen(p) <= len_left)
strcpy(pos, p);
pstrcpy(pos, p);
if(sys_stat(fullname,&st) == 0) {
SIVAL(buf, ((counter * 4)%(buf_len-4)),

View File

@ -419,7 +419,7 @@ static char *sj_to_euc(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy((char *) save, (char *) cvtbuf);
pstrcpy((char *) save, (char *) cvtbuf);
return (char *) save;
} else {
return cvtbuf;
@ -451,7 +451,7 @@ static char *euc_to_sj(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy(save, (char *) cvtbuf);
pstrcpy(save, (char *) cvtbuf);
return save;
} else {
return cvtbuf;
@ -522,7 +522,7 @@ static char *jis8_to_sj(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy (save, (char *) cvtbuf);
pstrcpy (save, (char *) cvtbuf);
return save;
} else {
return cvtbuf;
@ -578,7 +578,7 @@ static char *sj_to_jis8(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy (save, (char *) cvtbuf);
pstrcpy (save, (char *) cvtbuf);
return save;
} else {
return cvtbuf;
@ -637,7 +637,7 @@ static char *jis7_to_sj(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy (save, (char *) cvtbuf);
pstrcpy (save, (char *) cvtbuf);
return save;
} else {
return cvtbuf;
@ -713,7 +713,7 @@ static char *sj_to_jis7(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy (save, (char *) cvtbuf);
pstrcpy (save, (char *) cvtbuf);
return save;
} else {
return cvtbuf;
@ -769,7 +769,7 @@ static char *junet_to_sj(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy (save, (char *) cvtbuf);
pstrcpy (save, (char *) cvtbuf);
return save;
} else {
return cvtbuf;
@ -838,7 +838,7 @@ static char *sj_to_junet(char *from, BOOL overwrite)
}
*out = 0;
if (overwrite) {
strcpy (save, (char *) cvtbuf);
pstrcpy (save, (char *) cvtbuf);
return save;
} else {
return cvtbuf;
@ -864,7 +864,7 @@ static char *hex_to_sj(char *from, BOOL overwrite)
}
*dp = '\0';
if (overwrite) {
strcpy ((char *) from, (char *) cvtbuf);
pstrcpy ((char *) from, (char *) cvtbuf);
return (char *) from;
} else {
return cvtbuf;
@ -900,7 +900,7 @@ static char *sj_to_hex(char *from, BOOL overwrite)
}
*dp = '\0';
if (overwrite) {
strcpy ((char *) from, (char *) cvtbuf);
pstrcpy ((char *) from, (char *) cvtbuf);
return (char *) from;
} else {
return cvtbuf;
@ -932,7 +932,7 @@ static char *cap_to_sj(char *from, BOOL overwrite)
}
*dp = '\0';
if (overwrite) {
strcpy ((char *) from, (char *) cvtbuf);
pstrcpy ((char *) from, (char *) cvtbuf);
return (char *) from;
} else {
return cvtbuf;
@ -960,7 +960,7 @@ static char *sj_to_cap(char *from, BOOL overwrite)
}
*dp = '\0';
if (overwrite) {
strcpy ((char *) from, (char *) cvtbuf);
pstrcpy ((char *) from, (char *) cvtbuf);
return (char *) from;
} else {
return cvtbuf;
@ -973,7 +973,7 @@ static char *sj_to_cap(char *from, BOOL overwrite)
static char *sj_to_sj(char *from, BOOL overwrite)
{
if (!overwrite) {
strcpy (cvtbuf, (char *) from);
pstrcpy (cvtbuf, (char *) from);
return cvtbuf;
} else {
return (char *) from;

View File

@ -58,7 +58,7 @@ void pidfile_create(char *name)
}
memset(buf, 0, sizeof(buf));
sprintf(buf, "%u\n", (unsigned int) getpid());
slprintf(buf, sizeof(buf) - 1, "%u\n", (unsigned int) getpid());
if (write(fd, buf, sizeof(buf)) != sizeof(buf)) {
DEBUG(0,("ERROR: can't write to %s: %s\n",
pidFile, strerror(errno)));

View File

@ -41,7 +41,15 @@ int vslprintf(char *str, int n, char *format, va_list ap)
/* note: we don't free the old memory (if any) as we don't
want a malloc lib to reuse the memory as it will
have the wrong permissions */
#ifdef HAVE_MEMALIGN
buf = memalign(pagesize, len);
#else /* HAVE_MEMALIGN */
#ifdef HAVE_VALLOC
buf = valloc(len);
#else /* HAVE_VALLOC */
buf = malloc(len);
#endif /* HAVE_VALLOC */
#endif /* HAVE_MEMALIGN */
if (buf) {
if (mprotect(buf+(len-pagesize), pagesize, PROT_READ) != 0) {
exit(1);

View File

@ -486,7 +486,7 @@ char *timestring(void )
int zone = TimeDiff(t);
int absZoneMinutes = (zone<0 ? -zone : zone) / 60;
size_t len = strftime(TimeBuf,sizeof(TimeBuf)-6,"%Y/%m/%d %T",tm);
sprintf(TimeBuf+len," %c%02d%02d",
slprintf(TimeBuf+len, sizeof(fstring) - len - 1, " %c%02d%02d",
zone<0?'+':'-',absZoneMinutes/60,absZoneMinutes%60);
}
#else

View File

@ -178,14 +178,14 @@ void reopen_logs(void)
if (DEBUGLEVEL > 0)
{
strcpy(fname,debugf);
pstrcpy(fname,debugf);
if (lp_loaded() && (*lp_logfile()))
strcpy(fname,lp_logfile());
pstrcpy(fname,lp_logfile());
if (!strcsequal(fname,debugf) || !dbf || !file_exist(debugf,NULL))
{
int oldumask = umask(022);
strcpy(debugf,fname);
pstrcpy(debugf,fname);
if (dbf) fclose(dbf);
if (append_log)
dbf = fopen(debugf,"a");
@ -581,7 +581,7 @@ set user socket options
****************************************************************************/
void set_socket_options(int fd, char *options)
{
string tok;
fstring tok;
while (next_token(&options,tok," \t,"))
{
@ -767,7 +767,7 @@ int name_mangle( char *In, char *Out, char name_type )
if( '*' == In[0] )
buf[0] = '*';
else
(void)sprintf( buf, "%-15.15s%c", In, name_type );
(void)slprintf( buf, sizeof(buf) - 1, "%-15.15s%c", In, name_type );
/* Place the length of the first field into the output buffer. */
p[0] = 32;
@ -869,16 +869,16 @@ return a string representing an attribute for a file
********************************************************************/
char *attrib_string(int mode)
{
static char attrstr[10];
static fstring attrstr;
attrstr[0] = 0;
if (mode & aVOLID) strcat(attrstr,"V");
if (mode & aDIR) strcat(attrstr,"D");
if (mode & aARCH) strcat(attrstr,"A");
if (mode & aHIDDEN) strcat(attrstr,"H");
if (mode & aSYSTEM) strcat(attrstr,"S");
if (mode & aRONLY) strcat(attrstr,"R");
if (mode & aVOLID) fstrcat(attrstr,"V");
if (mode & aDIR) fstrcat(attrstr,"D");
if (mode & aARCH) fstrcat(attrstr,"A");
if (mode & aHIDDEN) fstrcat(attrstr,"H");
if (mode & aSYSTEM) fstrcat(attrstr,"S");
if (mode & aRONLY) fstrcat(attrstr,"R");
return(attrstr);
}
@ -1244,8 +1244,8 @@ void unix_format(char *fname)
if (*fname == '/')
{
pstrcpy(namecopy,fname);
strcpy(fname,".");
strcat(fname,namecopy);
pstrcpy(fname,".");
pstrcat(fname,namecopy);
}
}
@ -1447,7 +1447,7 @@ void dos_clean_name(char *s)
*p = 0;
else
*s = 0;
strcat(s,s1);
pstrcat(s,s1);
}
trim_string(s,NULL,"\\..");
@ -1471,7 +1471,7 @@ void unix_clean_name(char *s)
if(strncmp(s, "./", 2) == 0) {
trim_string(s, "./", NULL);
if(*s == 0)
strcpy(s,"./");
pstrcpy(s,"./");
}
while ((p = strstr(s,"/../")) != NULL)
@ -1485,7 +1485,7 @@ void unix_clean_name(char *s)
*p = 0;
else
*s = 0;
strcat(s,s1);
pstrcat(s,s1);
}
trim_string(s,NULL,"/..");
@ -1578,7 +1578,7 @@ char *GetWd(char *str)
st.st_dev == st2.st_dev &&
(st2.st_mode & S_IFMT) == S_IFDIR)
{
strcpy (str, ino_list[i].text);
pstrcpy (str, ino_list[i].text);
/* promote it for future use */
array_promote((char *)&ino_list[0],sizeof(ino_list[0]),i);
@ -1605,7 +1605,7 @@ char *GetWd(char *str)
return (NULL);
}
strcpy(str,s);
pstrcpy(str,s);
DEBUG(5,("GetWd %s, inode %d, dev %x\n",s,(int)st.st_ino,(int)st.st_dev));
@ -1656,7 +1656,7 @@ BOOL reduce_name(char *s,char *dir,BOOL widelinks)
}
if (strlen(s) == 0)
strcpy(s,"./");
pstrcpy(s,"./");
return(True);
}
@ -1717,8 +1717,8 @@ BOOL reduce_name(char *s,char *dir,BOOL widelinks)
if (p && (p != base_name))
{
strcat(newname,"/");
strcat(newname,p+1);
pstrcat(newname,"/");
pstrcat(newname,p+1);
}
{
@ -1747,7 +1747,7 @@ BOOL reduce_name(char *s,char *dir,BOOL widelinks)
ChDir(wd);
if (strlen(s) == 0)
strcpy(s,"./");
pstrcpy(s,"./");
DEBUG(3,("reduced to %s\n",s));
return(True);
@ -1802,7 +1802,7 @@ void expand_mask(char *Mask,BOOL doext)
}
else
{
strcpy(mext,"");
pstrcpy(mext,"");
if (strlen(mbeg) > 8)
{
pstrcpy(mext,mbeg + 8);
@ -1811,12 +1811,12 @@ void expand_mask(char *Mask,BOOL doext)
}
if (*mbeg == 0)
strcpy(mbeg,"????????");
pstrcpy(mbeg,"????????");
if ((*mext == 0) && doext && !hasdot)
strcpy(mext,"???");
pstrcpy(mext,"???");
if (strequal(mbeg,"*") && *mext==0)
strcpy(mext,"*");
pstrcpy(mext,"*");
/* expand *'s */
expand_one(mbeg,8);
@ -1824,10 +1824,10 @@ void expand_mask(char *Mask,BOOL doext)
expand_one(mext,3);
pstrcpy(Mask,dirpart);
if (*dirpart || absolute) strcat(Mask,"\\");
strcat(Mask,mbeg);
strcat(Mask,".");
strcat(Mask,mext);
if (*dirpart || absolute) pstrcat(Mask,"\\");
pstrcat(Mask,mbeg);
pstrcat(Mask,".");
pstrcat(Mask,mext);
DEBUG(6,("Mask expanded to [%s]\n",Mask));
}
@ -2769,7 +2769,7 @@ int name_extract(char *buf,int ofs,char *name)
{
char *p = name_ptr(buf,ofs);
int d = PTR_DIFF(p,buf+ofs);
strcpy(name,"");
pstrcpy(name,"");
if (d < -50 || d > 50) return(0);
return(name_interpret(p,name));
}
@ -2913,7 +2913,7 @@ BOOL string_init(char **dest,char *src)
return False;
}
strcpy(*dest,src);
pstrcpy(*dest,src);
}
return(True);
}
@ -3057,12 +3057,12 @@ BOOL mask_match(char *str, char *regexp, int case_sig,BOOL trans2)
StrnCpy(p2,str,sizeof(pstring)-1);
if (!strchr(p2,'.')) {
strcat(p2,".");
pstrcat(p2,".");
}
/*
if (!strchr(p1,'.')) {
strcat(p1,".");
pstrcat(p1,".");
}
*/
@ -3077,7 +3077,7 @@ BOOL mask_match(char *str, char *regexp, int case_sig,BOOL trans2)
/* Remove any *? and ** as they are meaningless */
for(p = p1; *p; p++)
while( *p == '*' && (p[1] == '?' ||p[1] == '*'))
(void)strcpy( &p[1], &p[2]);
(void)pstrcpy( &p[1], &p[2]);
if (strequal(p1,"*")) return(True);
@ -3310,11 +3310,11 @@ char *dirname_dos(char *path,char *buf)
char *p = strrchr(path,'\\');
if (!p)
strcpy(buf,path);
pstrcpy(buf,path);
else
{
*p = 0;
strcpy(buf,path);
pstrcpy(buf,path);
*p = '\\';
}
@ -3330,9 +3330,9 @@ static char *filename_dos(char *path,char *buf)
char *p = strrchr(path,'\\');
if (!p)
strcpy(buf,path);
pstrcpy(buf,path);
else
strcpy(buf,p+1);
pstrcpy(buf,p+1);
return(buf);
}
@ -3373,7 +3373,7 @@ duplicate a string
if (!s) return(NULL);
ret = (char *)malloc(strlen(s)+1);
if (!ret) return(NULL);
strcpy(ret,s);
pstrcpy(ret,s);
return(ret);
}
#endif
@ -3748,7 +3748,7 @@ char *client_name(int fd)
last_fd = fd;
global_client_name_done = False;
strcpy(name_buf,"UNKNOWN");
pstrcpy(name_buf,"UNKNOWN");
if (fd == -1) {
return name_buf;
@ -3769,7 +3769,7 @@ char *client_name(int fd)
StrnCpy(name_buf,(char *)hp->h_name,sizeof(name_buf) - 1);
if (!matchname(name_buf, sockin->sin_addr)) {
DEBUG(0,("Matchname failed on %s %s\n",name_buf,client_addr(fd)));
strcpy(name_buf,"UNKNOWN");
pstrcpy(name_buf,"UNKNOWN");
}
}
global_client_name_done = True;
@ -3793,7 +3793,7 @@ char *client_addr(int fd)
last_fd = fd;
global_client_addr_done = False;
strcpy(addr_buf,"0.0.0.0");
fstrcpy(addr_buf,"0.0.0.0");
if (fd == -1) {
return addr_buf;
@ -3980,7 +3980,7 @@ char *automount_path(char *user_name)
{
DEBUG(5, ("NIS lookup succeeded. Home path is: %s\n",
home_path_start?(home_path_start+1):""));
strcpy(server_path, home_path_start+1);
pstrcpy(server_path, home_path_start+1);
}
}
#endif
@ -4029,7 +4029,7 @@ void standard_sub_basic(char *str)
case 'a' : string_sub(p,"%a", remote_arch); break;
case 'd' :
{
sprintf(pidstr,"%d",(int)getpid());
slprintf(pidstr,sizeof(pidstr) - 1, "%d",(int)getpid());
string_sub(p,"%d", pidstr);
break;
}
@ -4184,7 +4184,7 @@ char *uidtoname(int uid)
static char name[40];
struct passwd *pass = getpwuid(uid);
if (pass) return(pass->pw_name);
sprintf(name,"%d",uid);
slprintf(name, sizeof(name) - 1, "%d",uid);
return(name);
}
@ -4196,7 +4196,7 @@ char *gidtoname(int gid)
static char name[40];
struct group *grp = getgrgid(gid);
if (grp) return(grp->gr_name);
sprintf(name,"%d",gid);
slprintf(name,sizeof(name) - 1, "%d",gid);
return(name);
}
@ -4600,23 +4600,23 @@ void set_remote_arch(enum remote_arch_types type)
switch( type )
{
case RA_WFWG:
strcpy(remote_arch, "WfWg");
fstrcpy(remote_arch, "WfWg");
return;
case RA_OS2:
strcpy(remote_arch, "OS2");
fstrcpy(remote_arch, "OS2");
return;
case RA_WIN95:
strcpy(remote_arch, "Win95");
fstrcpy(remote_arch, "Win95");
return;
case RA_WINNT:
strcpy(remote_arch, "WinNT");
fstrcpy(remote_arch, "WinNT");
return;
case RA_SAMBA:
strcpy(remote_arch,"Samba");
fstrcpy(remote_arch,"Samba");
return;
default:
ra_type = RA_UNKNOWN;
strcpy(remote_arch, "UNKNOWN");
fstrcpy(remote_arch, "UNKNOWN");
break;
}
}
@ -4793,7 +4793,7 @@ int unistrcpy(char *dst, char *src)
return num_wchars;
}
#if 0
/*******************************************************************
safe string copy into a fstring
********************************************************************/
@ -4824,34 +4824,94 @@ void fstrcpy(char *dest, char *src)
}
/*******************************************************************
safe string copy into a pstring
safe string cat into a fstring
********************************************************************/
void pstrcpy(char *dest, char *src)
void fstrcat(char *dest, char *src)
{
int maxlength = sizeof(pstring) - 1;
int len;
int maxlength = sizeof(fstring) - 1;
int src_len, dest_len;
if (!dest) {
DEBUG(0,("ERROR: NULL dest in pstrcpy\n"));
DEBUG(0,("ERROR: NULL dest in fstrcat\n"));
return;
}
if (!src) {
*dest = 0;
return;
}
src_len = strlen(src);
dest_len = strlen(dest);
if (src_len + dest_len > maxlength) {
DEBUG(0,("ERROR: string overflow by %d in fstrcat [%.50s]\n",
src_len + dest_len - maxlength, src));
src_len = maxlength - dest_len;
}
memcpy(&dest[dest_len], src, src_len);
dest[dest_len + src_len] = 0;
}
#endif
/*******************************************************************
safe string copy into a known length string
********************************************************************/
char *safe_strcpy(char *dest, char *src, int maxlength)
{
int len;
if (!dest) {
DEBUG(0,("ERROR: NULL dest in safe_strcpy\n"));
return NULL;
}
if (!src) {
*dest = 0;
return dest;
}
len = strlen(src);
if (len > maxlength) {
DEBUG(0,("ERROR: string overflow by %d in pstrcpy [%.50s]\n",
DEBUG(0,("ERROR: string overflow by %d in safe_strcpy [%.50s]\n",
len-maxlength, src));
len = maxlength;
}
memcpy(dest, src, len);
dest[len] = 0;
return dest;
}
/*******************************************************************
safe string cat into a string
********************************************************************/
char *safe_strcat(char *dest, char *src, int maxlength)
{
int src_len, dest_len;
if (!dest) {
DEBUG(0,("ERROR: NULL dest in safe_strcat\n"));
return NULL;
}
if (!src) {
return dest;
}
src_len = strlen(src);
dest_len = strlen(dest);
if (src_len + dest_len > maxlength) {
DEBUG(0,("ERROR: string overflow by %d in safe_strcat [%.50s]\n",
src_len + dest_len - maxlength, src));
src_len = maxlength - dest_len;
}
memcpy(&dest[dest_len], src, src_len);
dest[dest_len + src_len] = 0;
return dest;
}
/*******************************************************************
align a pointer to a multiple of 4 bytes
@ -4954,12 +5014,12 @@ char *dom_sid_to_string(DOM_SID *sid)
(sid->id_auth[3] << 16) +
(sid->id_auth[2] << 24);
sprintf(sidstr, "S-%d-%d", sid->sid_rev_num, ia);
slprintf(sidstr, sizeof(sidstr) - 1, "S-%d-%d", sid->sid_rev_num, ia);
for (i = 0; i < sid->num_auths; i++)
{
sprintf(subauth, "-%d", sid->sub_auths[i]);
strcat(sidstr, subauth);
slprintf(subauth, sizeof(subauth)-1, "-%d", sid->sub_auths[i]);
pstrcat(sidstr, subauth);
}
DEBUG(7,("dom_sid_to_string returning %s\n", sidstr));

View File

@ -89,7 +89,7 @@ char *cli_errstr(struct cli_state *cli)
char *nt_msg = get_nt_error_msg(cli->nt_error);
if(nt_msg == NULL)
sprintf(error_message, "NT code %d", cli->nt_error);
slprintf(error_message, sizeof(fstring) - 1, "NT code %d", cli->nt_error);
else
fstrcpy(error_message, nt_msg);
@ -100,7 +100,7 @@ char *cli_errstr(struct cli_state *cli)
* Must have been a rap error.
*/
sprintf(error_message, "code %d", cli->rap_error);
slprintf(error_message, sizeof(error_message) - 1, "code %d", cli->rap_error);
for(i = 0; rap_errmap[i].message != NULL; i++) {
if (rap_errmap[i].err == cli->rap_error) {
@ -387,16 +387,16 @@ BOOL cli_NetWkstaUserLogon(struct cli_state *cli,char *user, char *workstation)
p = param;
SSVAL(p,0,132); /* api number */
p += 2;
strcpy(p,"OOWb54WrLh");
pstrcpy(p,"OOWb54WrLh");
p = skip_string(p,1);
strcpy(p,"WB21BWDWWDDDDDDDzzzD");
pstrcpy(p,"WB21BWDWWDDDDDDDzzzD");
p = skip_string(p,1);
SSVAL(p,0,1);
p += 2;
strcpy(p,user);
pstrcpy(p,user);
strupper(p);
p += 21; p++; p += 15; p++;
strcpy(p, workstation);
pstrcpy(p, workstation);
strupper(p);
p += 16;
SSVAL(p, 0, BUFFER_SIZE);
@ -443,9 +443,9 @@ BOOL cli_RNetShareEnum(struct cli_state *cli, void (*fn)(char *, uint32, char *)
p = param;
SSVAL(p,0,0); /* api number */
p += 2;
strcpy(p,"WrLeh");
pstrcpy(p,"WrLeh");
p = skip_string(p,1);
strcpy(p,"B13BWz");
pstrcpy(p,"B13BWz");
p = skip_string(p,1);
SSVAL(p,0,1);
SSVAL(p,2,BUFFER_SIZE);
@ -505,10 +505,10 @@ BOOL cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype,
p = param;
SSVAL(p,0,0x68); /* api number */
p += 2;
strcpy(p,"WrLehDz");
pstrcpy(p,"WrLehDz");
p = skip_string(p,1);
strcpy(p,"B16BBDz");
pstrcpy(p,"B16BBDz");
p = skip_string(p,1);
SSVAL(p,0,uLevel);
@ -625,7 +625,7 @@ BOOL cli_session_setup(struct cli_state *cli,
p = smb_buf(cli->outbuf);
memcpy(p,pword,passlen);
p += passlen;
strcpy(p,user);
pstrcpy(p,user);
strupper(p);
} else {
set_message(cli->outbuf,13,0,True);
@ -644,14 +644,14 @@ BOOL cli_session_setup(struct cli_state *cli,
p += SVAL(cli->outbuf,smb_vwv7);
memcpy(p,ntpass,ntpasslen);
p += SVAL(cli->outbuf,smb_vwv8);
strcpy(p,user);
pstrcpy(p,user);
strupper(p);
p = skip_string(p,1);
strcpy(p,workgroup);
pstrcpy(p,workgroup);
strupper(p);
p = skip_string(p,1);
strcpy(p,"Unix");p = skip_string(p,1);
strcpy(p,"Samba");p = skip_string(p,1);
pstrcpy(p,"Unix");p = skip_string(p,1);
pstrcpy(p,"Samba");p = skip_string(p,1);
set_message(cli->outbuf,13,PTR_DIFF(p,smb_buf(cli->outbuf)),False);
}
@ -728,9 +728,9 @@ BOOL cli_send_tconX(struct cli_state *cli,
p = smb_buf(cli->outbuf);
memcpy(p,pword,passlen);
p += passlen;
strcpy(p,fullshare);
fstrcpy(p,fullshare);
p = skip_string(p,1);
strcpy(p,dev);
pstrcpy(p,dev);
SCVAL(cli->inbuf,smb_rcls, 1);
@ -785,10 +785,10 @@ BOOL cli_mv(struct cli_state *cli, char *fname_src, char *fname_dst)
p = smb_buf(cli->outbuf);
*p++ = 4;
strcpy(p,fname_src);
pstrcpy(p,fname_src);
p = skip_string(p,1);
*p++ = 4;
strcpy(p,fname_dst);
pstrcpy(p,fname_dst);
send_smb(cli->fd,cli->outbuf);
if (!client_receive_smb(cli->fd,cli->inbuf,cli->timeout)) {
@ -822,7 +822,7 @@ BOOL cli_unlink(struct cli_state *cli, char *fname)
p = smb_buf(cli->outbuf);
*p++ = 4;
strcpy(p,fname);
pstrcpy(p,fname);
send_smb(cli->fd,cli->outbuf);
if (!client_receive_smb(cli->fd,cli->inbuf,cli->timeout)) {
@ -855,7 +855,7 @@ BOOL cli_mkdir(struct cli_state *cli, char *dname)
p = smb_buf(cli->outbuf);
*p++ = 4;
strcpy(p,dname);
pstrcpy(p,dname);
send_smb(cli->fd,cli->outbuf);
if (!client_receive_smb(cli->fd,cli->inbuf,cli->timeout)) {
@ -887,7 +887,7 @@ BOOL cli_rmdir(struct cli_state *cli, char *dname)
p = smb_buf(cli->outbuf);
*p++ = 4;
strcpy(p,dname);
pstrcpy(p,dname);
send_smb(cli->fd,cli->outbuf);
if (!client_receive_smb(cli->fd,cli->inbuf,cli->timeout)) {
@ -952,7 +952,7 @@ int cli_open(struct cli_state *cli, char *fname, int flags, int share_mode)
SSVAL(cli->outbuf,smb_vwv8,openfn);
p = smb_buf(cli->outbuf);
strcpy(p,fname);
pstrcpy(p,fname);
p = skip_string(p,1);
send_smb(cli->fd,cli->outbuf);
@ -1179,7 +1179,7 @@ BOOL cli_getatr(struct cli_state *cli, char *fname,
p = smb_buf(cli->outbuf);
*p = 4;
strcpy(p+1, fname);
pstrcpy(p+1, fname);
send_smb(cli->fd,cli->outbuf);
if (!client_receive_smb(cli->fd,cli->inbuf,cli->timeout)) {
@ -1228,7 +1228,7 @@ BOOL cli_setatr(struct cli_state *cli, char *fname, int attr, time_t t)
p = smb_buf(cli->outbuf);
*p = 4;
strcpy(p+1, fname);
pstrcpy(p+1, fname);
p = skip_string(p,1);
*p = 4;
@ -1450,11 +1450,11 @@ BOOL cli_oem_change_password(struct cli_state *cli, char *user, char *new_passwo
SSVAL(p,0,214); /* SamOEMChangePassword command. */
p += 2;
strcpy(p, "zsT");
pstrcpy(p, "zsT");
p = skip_string(p,1);
strcpy(p, "B516B16");
pstrcpy(p, "B516B16");
p = skip_string(p,1);
fstrcpy(p,user);
pstrcpy(p,user);
p = skip_string(p,1);
SSVAL(p,0,532);
p += 2;
@ -1546,7 +1546,7 @@ BOOL cli_negprot(struct cli_state *cli)
prots[numprots].name && prots[numprots].prot<=cli->protocol;
numprots++) {
*p++ = 2;
strcpy(p,prots[numprots].name);
pstrcpy(p,prots[numprots].name);
p += strlen(p) + 1;
}

View File

@ -31,7 +31,7 @@ represent a credential as a string
char *credstr(uchar *cred)
{
static fstring buf;
sprintf(buf,"%02X%02X%02X%02X%02X%02X%02X%02X",
slprintf(buf, sizeof(buf) - 1, "%02X%02X%02X%02X%02X%02X%02X%02X",
cred[0], cred[1], cred[2], cred[3],
cred[4], cred[5], cred[6], cred[7]);
return buf;

View File

@ -51,15 +51,15 @@ static void _interpret_node_status(char *p, char *master,char *rname)
type = CVAL(p,15);
p += 16;
strcat(flags, (p[0] & 0x80) ? "<GROUP> " : " ");
if ((p[0] & 0x60) == 0x00) strcat(flags,"B ");
if ((p[0] & 0x60) == 0x20) strcat(flags,"P ");
if ((p[0] & 0x60) == 0x40) strcat(flags,"M ");
if ((p[0] & 0x60) == 0x60) strcat(flags,"H ");
if (p[0] & 0x10) strcat(flags,"<DEREGISTERING> ");
if (p[0] & 0x08) strcat(flags,"<CONFLICT> ");
if (p[0] & 0x04) strcat(flags,"<ACTIVE> ");
if (p[0] & 0x02) strcat(flags,"<PERMANENT> ");
fstrcat(flags, (p[0] & 0x80) ? "<GROUP> " : " ");
if ((p[0] & 0x60) == 0x00) fstrcat(flags,"B ");
if ((p[0] & 0x60) == 0x20) fstrcat(flags,"P ");
if ((p[0] & 0x60) == 0x40) fstrcat(flags,"M ");
if ((p[0] & 0x60) == 0x60) fstrcat(flags,"H ");
if (p[0] & 0x10) fstrcat(flags,"<DEREGISTERING> ");
if (p[0] & 0x08) fstrcat(flags,"<CONFLICT> ");
if (p[0] & 0x04) fstrcat(flags,"<ACTIVE> ");
if (p[0] & 0x02) fstrcat(flags,"<PERMANENT> ");
if (master && !*master && type == 0x1d) {
StrnCpy(master,qname,15);
@ -341,9 +341,9 @@ BOOL getlmhostsent( FILE *fp, char *name, int *name_type, struct in_addr *ipaddr
if (*line == '#')
continue;
strcpy(ip,"");
strcpy(name,"");
strcpy(flags,"");
pstrcpy(ip,"");
pstrcpy(name,"");
pstrcpy(flags,"");
ptr = line;

View File

@ -252,7 +252,7 @@ static int put_nmb_name(char *buf,int offset,struct nmb_name *name)
buf1[0] = '*';
buf1[15] = name->name_type;
} else {
sprintf(buf1,"%-15.15s%c",name->name,name->name_type);
slprintf(buf1, sizeof(buf1) - 1,"%-15.15s%c",name->name,name->name_type);
}
buf[offset] = 0x20;
@ -270,7 +270,7 @@ static int put_nmb_name(char *buf,int offset,struct nmb_name *name)
if (name->scope[0]) {
/* XXXX this scope handling needs testing */
ret += strlen(name->scope) + 1;
strcpy(&buf[offset+1],name->scope);
pstrcpy(&buf[offset+1],name->scope);
p = &buf[offset+1];
while ((p = strchr(p,'.'))) {

View File

@ -525,7 +525,7 @@ char *get_nt_error_msg(uint32 nt_code)
static pstring msg;
int idx = 0;
strcpy(msg, "Unknown NT error");
pstrcpy(msg, "Unknown NT error");
nt_code &= 0xFFFF;
@ -533,7 +533,7 @@ char *get_nt_error_msg(uint32 nt_code)
{
if (nt_errs[idx].nt_errcode == nt_code)
{
strcpy(msg, nt_errs[idx].nt_errstr);
pstrcpy(msg, nt_errs[idx].nt_errstr);
return msg;
}
idx++;

View File

@ -165,18 +165,18 @@ char *smb_errstr(char *inbuf)
if (num == err[j].code)
{
if (DEBUGLEVEL > 0)
sprintf(ret,"%s - %s (%s)",err_classes[i].class,
slprintf(ret, sizeof(ret) - 1, "%s - %s (%s)",err_classes[i].class,
err[j].name,err[j].message);
else
sprintf(ret,"%s - %s",err_classes[i].class,err[j].name);
slprintf(ret, sizeof(ret) - 1, "%s - %s",err_classes[i].class,err[j].name);
return ret;
}
}
sprintf(ret,"%s - %d",err_classes[i].class,num);
slprintf(ret, sizeof(ret) - 1, "%s - %d",err_classes[i].class,num);
return ret;
}
sprintf(ret,"Error: Unknown error (%d,%d)",class,num);
slprintf(ret, sizeof(ret) - 1, "Error: Unknown error (%d,%d)",class,num);
return(ret);
}

View File

@ -436,7 +436,7 @@ static BOOL shm_set_share_mode(int token, int fnum, uint16 port, uint16 op_type)
new_mode_p->st_ino = inode;
new_mode_p->num_share_mode_entries = 0;
new_mode_p->share_mode_entries = 0;
strcpy(new_mode_p->file_name, fs_p->name);
pstrcpy(new_mode_p->file_name, fs_p->name);
/* Chain onto the start of the hash chain (in the hope we will be used first). */
new_mode_p->next_offset = mode_array[hash_entry];

View File

@ -81,12 +81,14 @@ static BOOL slow_stop_share_mode_mgmt(void)
******************************************************************/
static BOOL share_name(int cnum, uint32 dev, uint32 inode, char *name)
{
strcpy(name,lp_lockdir());
int len;
pstrcpy(name,lp_lockdir());
trim_string(name,"","/");
if (!*name) return(False);
len = strlen(name);
name += strlen(name);
sprintf(name,"/share.%u.%u",dev,inode);
slprintf(name, sizeof(pstring) - len - 1, "/share.%u.%u",dev,inode);
return(True);
}
@ -784,7 +786,7 @@ deleting it.\n", fname));
SIVAL(buf,SMF_VERSION_OFFSET,LOCKING_VERSION);
SIVAL(buf,SMF_NUM_ENTRIES_OFFSET,0);
SSVAL(buf,SMF_FILENAME_LEN_OFFSET,strlen(fs_p->name) + 1);
strcpy(buf + SMF_HEADER_LENGTH, fs_p->name);
pstrcpy(buf + SMF_HEADER_LENGTH, fs_p->name);
}
num_entries = IVAL(buf,SMF_NUM_ENTRIES_OFFSET);
@ -1001,10 +1003,10 @@ static int slow_share_forall(void (*fn)(share_mode_entry *, char *))
if (sscanf(s,"share.%u.%u",&dev,&inode)!=2) continue;
strcpy(lname,lp_lockdir());
pstrcpy(lname,lp_lockdir());
trim_string(lname,NULL,"/");
strcat(lname,"/");
strcat(lname,s);
pstrcat(lname,"/");
pstrcat(lname,s);
fd = open(lname,read_only?O_RDONLY:O_RDWR,0);
if (fd < 0) {
@ -1022,7 +1024,7 @@ static int slow_share_forall(void (*fn)(share_mode_entry *, char *))
close(fd);
continue;
}
strcpy( fname, &buf[10]);
pstrcpy( fname, &buf[10]);
close(fd);
base = buf + SMF_HEADER_LENGTH +

View File

@ -758,7 +758,7 @@ struct shmem_ops *smb_shm_open(int ronly)
}
trim_string(file_name,"","/");
if (!*file_name) return(False);
strcat(file_name, "/SHARE_MEM_FILE");
pstrcat(file_name, "/SHARE_MEM_FILE");
DEBUG(5,("smb_shm_open : using shmem file %s to be of size %d\n",file_name,size));
@ -799,8 +799,8 @@ struct shmem_ops *smb_shm_open(int ronly)
*/
/* construct processreg file name */
strcpy(smb_shm_processreg_name, file_name);
strcat(smb_shm_processreg_name, ".processes");
pstrcpy(smb_shm_processreg_name, file_name);
pstrcat(smb_shm_processreg_name, ".processes");
if (!read_only &&
!smb_shm_register_process(smb_shm_processreg_name, getpid(), &other_processes))

View File

@ -133,7 +133,7 @@ static BOOL dump_core(void)
pstrcpy( dname, debugf );
if ((p=strrchr(dname,'/')))
*p=0;
strcat( dname, "/corefiles" );
pstrcat( dname, "/corefiles" );
mkdir( dname, 0700 );
sys_chown( dname, getuid(), getgid() );
chmod( dname, 0700 );
@ -209,7 +209,7 @@ BOOL reload_services(BOOL test)
BOOL ret;
extern fstring remote_machine;
strcpy( remote_machine, "nmb" );
fstrcpy( remote_machine, "nmb" );
if ( lp_loaded() )
{
@ -560,14 +560,14 @@ int main(int argc,char *argv[])
TimeInit();
strcpy( debugf, NMBLOGFILE );
pstrcpy( debugf, NMBLOGFILE );
setup_logging( argv[0], False );
charset_initialise();
#ifdef LMHOSTSFILE
strcpy( host_file, LMHOSTSFILE );
pstrcpy( host_file, LMHOSTSFILE );
#endif
/* this is for people who can't start the program correctly */

View File

@ -276,7 +276,7 @@ in workgroup %s on subnet %s\n",
userdata->copy_fn = NULL;
userdata->free_fn = NULL;
userdata->userdata_len = strlen(work->work_group)+1;
strcpy(userdata->data, work->work_group);
pstrcpy(userdata->data, work->work_group);
/* Deregister any browser names we may have. */
make_nmb_name(&nmbname, MSBROWSE, 0x1, scope);
@ -528,7 +528,7 @@ in workgroup %s on subnet %s\n",
userdata->copy_fn = NULL;
userdata->free_fn = NULL;
userdata->userdata_len = strlen(work->work_group)+1;
strcpy(userdata->data, work->work_group);
pstrcpy(userdata->data, work->work_group);
/* Register the special browser group name. */
register_name(subrec, MSBROWSE, 0x01, samba_nb_type|NB_GROUP,

View File

@ -420,7 +420,7 @@ workgroup %s\n", q_name->name ));
userdata->copy_fn = NULL;
userdata->free_fn = NULL;
userdata->userdata_len = strlen(work->work_group)+1;
strcpy(userdata->data, work->work_group);
pstrcpy(userdata->data, work->work_group);
node_status( subrec, &nmbname, answer_ip,
domain_master_node_status_success,

View File

@ -362,7 +362,7 @@ subnet %s - name not found.\n", namestr(&nmb->question.question_name),
{
/* Start with the name. */
bzero(buf,18);
sprintf(buf,"%-15.15s",namerec->name.name);
slprintf(buf, 17, "%-15.15s",namerec->name.name);
strupper(buf);
/* Put the name type and netbios flags in the buffer. */

View File

@ -553,14 +553,14 @@ static void dump_subnet_namelist( struct subnet_record *subrec, FILE *fp)
void dump_all_namelists(void)
{
fstring fname;
pstring fname;
FILE *fp;
struct subnet_record *subrec;
pstrcpy(fname,lp_lockdir());
trim_string(fname,NULL,"/");
strcat(fname,"/");
strcat(fname,"namelist.debug");
pstrcat(fname,"/");
pstrcat(fname,"namelist.debug");
fp = fopen(fname,"w");

View File

@ -335,9 +335,9 @@ static BOOL initiate_multihomed_name_register_packet( struct packet_struct *pack
uint16 nb_flags, struct in_addr *register_ip)
{
struct nmb_packet *nmb = &packet->packet.nmb;
char second_ip_buf[25];
fstring second_ip_buf;
strcpy(second_ip_buf, inet_ntoa(packet->ip));
fstrcpy(second_ip_buf, inet_ntoa(packet->ip));
nmb->header.opcode = NMB_NAME_MULTIHOMED_REG_OPCODE;
nmb->header.arcount = 1;
@ -1914,7 +1914,7 @@ BOOL send_mailslot(BOOL unique, char *mailslot,char *buf,int len,
SSVAL(ptr,smb_vwv15,1);
SSVAL(ptr,smb_vwv16,2);
p2 = smb_buf(ptr);
strcpy(p2,mailslot);
pstrcpy(p2,mailslot);
p2 = skip_string(p2,1);
memcpy(p2,buf,len);

View File

@ -68,7 +68,7 @@ logons are not enabled.\n", inet_ntoa(p->ip) ));
return;
}
strcpy(my_name, global_myname);
pstrcpy(my_name, global_myname);
strupper(my_name);
code = SVAL(buf,0);
@ -89,7 +89,7 @@ logons are not enabled.\n", inet_ntoa(p->ip) ));
token = SVAL(q,3);
reply_code = 0x6;
strcpy(reply_name,my_name);
fstrcpy(reply_name,my_name);
add_slashes = True;
DEBUG(3,("process_logon_packet: Domain login request from %s at IP %s user=%s token=%x\n",
@ -98,9 +98,9 @@ logons are not enabled.\n", inet_ntoa(p->ip) ));
q = outbuf;
SSVAL(q, 0, 6); q += 2;
strcpy(reply_name, "\\\\");
strcat(reply_name, my_name);
strcpy(q, reply_name); q = skip_string(q, 1); /* PDC name */
fstrcpy(reply_name, "\\\\");
fstrcat(reply_name, my_name);
fstrcpy(q, reply_name); q = skip_string(q, 1); /* PDC name */
SSVAL(q, 0, token); q += 2;
@ -137,8 +137,8 @@ logons are not enabled.\n", inet_ntoa(p->ip) ));
q = outbuf;
SSVAL(q, 0, QUERYFORPDC_R); q += 2;
strcpy(reply_name,my_name);
strcpy(q, reply_name); q = skip_string(q, 1); /* PDC name */
fstrcpy(reply_name,my_name);
fstrcpy(q, reply_name); q = skip_string(q, 1); /* PDC name */
if (strcmp(mailslot, NT_LOGON_MAILSLOT)==0) {
q = align2(q, buf);
@ -198,8 +198,8 @@ reporting %s domain %s 0x%x ntversion=%x lm_nt token=%x lm_20 token=%x\n",
pstrcpy(ascuser, unistr(uniuser));
DEBUG(3,("process_logon_packet: SAMLOGON user %s\n", ascuser));
strcpy(reply_name,"\\\\"); /* Here it wants \\LOGONSERVER. */
strcpy(reply_name+2,my_name);
fstrcpy(reply_name,"\\\\"); /* Here it wants \\LOGONSERVER. */
fstrcpy(reply_name+2,my_name);
smb_pass = getsampwnam(ascuser);

View File

@ -338,10 +338,10 @@ void write_browse_list(time_t t, BOOL force_write)
pstrcpy(fname,lp_lockdir());
trim_string(fname,NULL,"/");
strcat(fname,"/");
strcat(fname,SERVER_LIST);
pstrcat(fname,"/");
pstrcat(fname,SERVER_LIST);
pstrcpy(fnamenew,fname);
strcat(fnamenew,".");
pstrcat(fnamenew,".");
fp = fopen(fnamenew,"w");

View File

@ -116,7 +116,7 @@ Load or create the WINS database.
BOOL initialise_wins(void)
{
fstring fname;
pstring fname;
time_t time_now = time(NULL);
FILE *fp;
pstring line;
@ -131,10 +131,10 @@ BOOL initialise_wins(void)
start_async_dns();
#endif
fstrcpy(fname,lp_lockdir());
pstrcpy(fname,lp_lockdir());
trim_string(fname,NULL,"/");
strcat(fname,"/");
strcat(fname,WINS_LIST);
pstrcat(fname,"/");
pstrcat(fname,WINS_LIST);
if((fp = fopen(fname,"r")) == NULL)
{
@ -1515,7 +1515,7 @@ void initiate_wins_processing(time_t t)
void wins_write_database(void)
{
struct name_record *namerec;
fstring fname, fnamenew;
pstring fname, fnamenew;
FILE *fp;
@ -1524,10 +1524,10 @@ void wins_write_database(void)
fstrcpy(fname,lp_lockdir());
trim_string(fname,NULL,"/");
strcat(fname,"/");
strcat(fname,WINS_LIST);
fstrcpy(fnamenew,fname);
strcat(fnamenew,".");
pstrcat(fname,"/");
pstrcat(fname,WINS_LIST);
pstrcpy(fnamenew,fname);
pstrcat(fnamenew,".");
if((fp = fopen(fnamenew,"w")) == NULL)
{

View File

@ -720,9 +720,10 @@ static void init_globals(void)
string_set(&Globals.szRootdir, "/");
string_set(&Globals.szSmbrun, SMBRUN);
string_set(&Globals.szSocketAddress, "0.0.0.0");
sprintf(s,"Samba %s",VERSION);
pstrcpy(s, "Samba ");
pstrcat(s, VERSION);
string_set(&Globals.szServerString,s);
sprintf(s,"%d.%d", DEFAULT_MAJOR_VERSION, DEFAULT_MINOR_VERSION);
slprintf(s,sizeof(s)-1, "%d.%d", DEFAULT_MAJOR_VERSION, DEFAULT_MINOR_VERSION);
string_set(&Globals.szAnnounceVersion,s);
string_set(&Globals.szLogonDrive, "");
@ -1829,11 +1830,11 @@ BOOL lp_do_parameter(int snum, char *pszParmName, char *pszParmValue)
break;
case P_GSTRING:
strcpy((char *)parm_ptr,pszParmValue);
pstrcpy((char *)parm_ptr,pszParmValue);
break;
case P_UGSTRING:
strcpy((char *)parm_ptr,pszParmValue);
pstrcpy((char *)parm_ptr,pszParmValue);
strupper((char *)parm_ptr);
break;

View File

@ -114,7 +114,7 @@ BOOL ldap_search_one_user_by_name(LDAP *ldap_struct, char *user, LDAPMessage **r
in the filter expression, replace %u with the real name
so in ldap filter, %u MUST exist :-)
*/
strcpy(filter,lp_ldap_filter());
pstrcpy(filter,lp_ldap_filter());
string_sub(filter,"%u",user);
if ( !ldap_search_one_user(ldap_struct, filter, result) )
@ -152,7 +152,7 @@ void get_single_attribute(LDAP *ldap_struct, LDAPMessage *entry, char *attribute
if ( (valeurs=ldap_get_values(ldap_struct, entry, attribute)) != NULL)
{
strcpy(value, valeurs[0]);
pstrcpy(value, valeurs[0]);
ldap_value_free(valeurs);
DEBUG(3,("get_single_attribute: [%s]=[%s]\n", attribute, value));
}
@ -451,7 +451,7 @@ void *startldappwent(BOOL update)
int scope = LDAP_SCOPE_ONELEVEL;
int rc;
char filter[256];
pstring filter;
if (!ldap_open_connection(&ldap_ent.ldap_struct)) /* open a connection to the server */
return NULL;
@ -464,17 +464,17 @@ void *startldappwent(BOOL update)
{
case 1:
{
strcpy(filter, "objectclass=sambaAccount");
pstrcpy(filter, "objectclass=sambaAccount");
break;
}
case 2:
{
strcpy(filter, "objectclass=sambaMachine");
pstrcpy(filter, "objectclass=sambaMachine");
break;
}
default:
{
strcpy(filter, "(|(objectclass=sambaMachine)(objectclass=sambaAccount))");
pstrcpy(filter, "(|(objectclass=sambaMachine)(objectclass=sambaAccount))");
break;
}
}

View File

@ -534,7 +534,7 @@ BOOL add_smbpwd_entry(struct smb_passwd *newpwd)
int fd;
int new_entry_length;
char *new_entry;
unsigned char *new_entry;
long offpos;
unsigned char *p;
@ -583,19 +583,19 @@ Error was %s\n", newpwd->smb_name, pfile, strerror(errno)));
return False;
}
sprintf(new_entry, "%s:%u:", newpwd->smb_name, (unsigned)newpwd->smb_userid);
slprintf(new_entry, new_entry_length - 1, "%s:%u:", newpwd->smb_name, (unsigned)newpwd->smb_userid);
p = (unsigned char *)&new_entry[strlen(new_entry)];
if(newpwd->smb_passwd != NULL) {
for( i = 0; i < 16; i++) {
sprintf((char *)&p[i*2], "%02X", newpwd->smb_passwd[i]);
slprintf((char *)&p[i*2], new_entry_length - (p - new_entry) - 1, "%02X", newpwd->smb_passwd[i]);
}
} else {
i=0;
if(newpwd->acct_ctrl & ACB_PWNOTREQ)
sprintf((char *)p, "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX");
safe_strcpy((char *)p, "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX", new_entry_length - 1 - (p - new_entry));
else
sprintf((char *)p, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
safe_strcpy((char *)p, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", new_entry_length - 1 - (p - new_entry));
}
p += 32;
@ -604,13 +604,13 @@ Error was %s\n", newpwd->smb_name, pfile, strerror(errno)));
if(newpwd->smb_nt_passwd != NULL) {
for( i = 0; i < 16; i++) {
sprintf((char *)&p[i*2], "%02X", newpwd->smb_nt_passwd[i]);
slprintf((char *)&p[i*2], new_entry_length - 1 - (p - new_entry), "%02X", newpwd->smb_nt_passwd[i]);
}
} else {
if(newpwd->acct_ctrl & ACB_PWNOTREQ)
sprintf((char *)p, "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX");
safe_strcpy((char *)p, "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX", new_entry_length - 1 - (p - new_entry));
else
sprintf((char *)p, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
safe_strcpy((char *)p, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", new_entry_length - 1 - (p - new_entry));
}
p += 32;
@ -618,7 +618,8 @@ Error was %s\n", newpwd->smb_name, pfile, strerror(errno)));
*p++ = ':';
/* Add the account encoding and the last change time. */
sprintf((char *)p, "%s:LCT-%08X:\n", encode_acct_ctrl(newpwd->acct_ctrl),
slprintf((char *)p, new_entry_length - 1 - (p - new_entry), "%s:LCT-%08X:\n",
encode_acct_ctrl(newpwd->acct_ctrl),
(uint32)time(NULL));
#ifdef DEBUG_PASSWORD
@ -945,13 +946,13 @@ BOOL mod_smbpwd_entry(struct smb_passwd* pwd, BOOL override)
/* Create the 32 byte representation of the new p16 */
if(pwd->smb_passwd != NULL) {
for (i = 0; i < 16; i++) {
sprintf(&ascii_p16[i*2], "%02X", (uchar) pwd->smb_passwd[i]);
slprintf(&ascii_p16[i*2], sizeof(fstring) - 1, "%02X", (uchar) pwd->smb_passwd[i]);
}
} else {
if(pwd->acct_ctrl & ACB_PWNOTREQ)
sprintf(ascii_p16, "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX");
fstrcpy(ascii_p16, "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX");
else
sprintf(ascii_p16, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
fstrcpy(ascii_p16, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
}
/* Add on the NT md4 hash */
@ -959,13 +960,13 @@ BOOL mod_smbpwd_entry(struct smb_passwd* pwd, BOOL override)
wr_len = 65;
if (pwd->smb_nt_passwd != NULL) {
for (i = 0; i < 16; i++) {
sprintf(&ascii_p16[(i*2)+33], "%02X", (uchar) pwd->smb_nt_passwd[i]);
slprintf(&ascii_p16[(i*2)+33], sizeof(fstring) - 1, "%02X", (uchar) pwd->smb_nt_passwd[i]);
}
} else {
if(pwd->acct_ctrl & ACB_PWNOTREQ)
sprintf(&ascii_p16[33], "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX");
fstrcpy(&ascii_p16[33], "NO PASSWORDXXXXXXXXXXXXXXXXXXXXX");
else
sprintf(&ascii_p16[33], "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
fstrcpy(&ascii_p16[33], "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
}
/* Add on the account info bits and the time of last
@ -1024,10 +1025,10 @@ static void get_trust_account_file_name( char *domain, char *name, char *mac_fil
return;
}
strcat(mac_file, domain);
strcat(mac_file, ".");
strcat(mac_file, name);
strcat(mac_file, ".mac");
pstrcat(mac_file, domain);
pstrcat(mac_file, ".");
pstrcat(mac_file, name);
pstrcat(mac_file, ".mac");
}
/************************************************************************
@ -1191,9 +1192,9 @@ BOOL set_trust_account_password( unsigned char *md4_new_pwd)
}
for (i = 0; i < 16; i++)
sprintf(&linebuf[(i*2)], "%02X", md4_new_pwd[i]);
slprintf(&linebuf[(i*2)], sizeof(linebuf) - (i*2) - 1, "%02X", md4_new_pwd[i]);
sprintf(&linebuf[32], ":TLC-%08X\n", (unsigned)time(NULL));
slprintf(&linebuf[32], 32, ":TLC-%08X\n", (unsigned)time(NULL));
if(fwrite( linebuf, 1, 45, mach_passwd_fp)!= 45) {
DEBUG(0,("set_trust_account_password: Failed to write file. Warning - the trust \

View File

@ -123,7 +123,7 @@ static void ScanQconfig_fn(char *psz,void (*fn)())
p = strtok(line,":");
if (strcmp(p,"bsh")!=0)
{
strcpy(name,p);
pstrcpy(name,p);
iEtat = 1;
continue;
}
@ -182,7 +182,7 @@ static BOOL ScanQconfig(char *psz,char *pszPrintername)
free(pName);
return(False);
}
sprintf(pName,"%s:",pszPrintername);
slprintf(pName, iLg + 9, "%s:",pszPrintername);
iLg = strlen(pName);
/*DEBUG(3,( " Looking for entry %s\n",pName));*/
iEtat = 0;
@ -295,7 +295,7 @@ BOOL pcap_printername_ok(char *pszPrintername, char *pszPrintcapname)
if (strequal(p,pszPrintername))
{
/* normalise the case */
strcpy(pszPrintername,p);
pstrcpy(pszPrintername,p);
free(line);
fclose(pfile);
return(True);

View File

@ -81,8 +81,8 @@ static char *build_print_command(int cnum, char *command, char *syscmd, char *fi
if (iOffset==0 || syscmd[iOffset-1] != '/') {
StrnCpy(filename,Connections[cnum].connectpath,sizeof(filename)-1);
trim_string(filename,"","/");
strcat(filename,"/");
strcat(filename,filename1);
pstrcat(filename,"/");
pstrcat(filename,filename1);
}
else
pstrcpy(filename,filename1);
@ -146,7 +146,7 @@ static char *Months[13] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
/*******************************************************************
process time fields
********************************************************************/
static time_t EntryTime(string tok[], int ptr, int count, int minimum)
static time_t EntryTime(fstring tok[], int ptr, int count, int minimum)
{
time_t jobtime,jobtime1;
@ -223,7 +223,7 @@ static BOOL parse_lpq_bsd(char *line,print_queue_struct *buf,BOOL first)
#define NTOK 5
#endif /* OSF1 */
string tok[NTOK];
fstring tok[NTOK];
int count=0;
#ifdef OSF1
@ -249,15 +249,15 @@ static BOOL parse_lpq_bsd(char *line,print_queue_struct *buf,BOOL first)
/* if the fname contains a space then use STDIN */
if (strchr(tok[FILETOK],' '))
strcpy(tok[FILETOK],"STDIN");
fstrcpy(tok[FILETOK],"STDIN");
/* only take the last part of the filename */
{
string tmp;
fstring tmp;
char *p = strrchr(tok[FILETOK],'/');
if (p)
{
strcpy(tmp,p+1);
fstrcpy(tmp,p+1);
fstrcpy(tok[FILETOK],tmp);
}
}
@ -282,7 +282,7 @@ static BOOL parse_lpq_bsd(char *line,print_queue_struct *buf,BOOL first)
LPRng_time modifies the current date by inserting the hour and minute from
the lpq output. The lpq time looks like "23:15:07"
*/
static time_t LPRng_time(string tok[],int pos)
static time_t LPRng_time(fstring tok[],int pos)
{
time_t jobtime;
struct tm *t;
@ -381,7 +381,7 @@ LPRng source changes. This is from version 2.3.0. Magnus */
#define JOBSIZE_POS FILE_POS+FILE_W
string tok[LPRNG_NTOK];
fstring tok[LPRNG_NTOK];
int count=0;
#ifdef OLD_LPRNG
@ -420,11 +420,11 @@ A long spool-path will just waste significant chars of the file name.
/* if the fname contains a space then use STDIN */
/* I do not understand how this would be possible. Magnus. */
if (strchr(tok[LPRNG_FILETOK],' '))
strcpy(tok[LPRNG_FILETOK],"STDIN");
fstrcpy(tok[LPRNG_FILETOK],"STDIN");
/* only take the last part of the filename */
{
string tmp;
fstring tmp;
char *p = strrchr(tok[LPRNG_FILETOK],'/');
if (p)
{
@ -473,7 +473,7 @@ lazer lazer RUNNING 537 6297doc.A kvintus@IE 0 10 2445 1 1
********************************************************************/
static BOOL parse_lpq_aix(char *line,print_queue_struct *buf,BOOL first)
{
string tok[11];
fstring tok[11];
int count=0;
/* handle the case of "(standard input)" as a filename */
@ -493,11 +493,11 @@ static BOOL parse_lpq_aix(char *line,print_queue_struct *buf,BOOL first)
buf->size = atoi(tok[4]) * 1024;
/* if the fname contains a space then use STDIN */
if (strchr(tok[2],' '))
strcpy(tok[2],"STDIN");
fstrcpy(tok[2],"STDIN");
/* only take the last part of the filename */
{
string tmp;
fstring tmp;
char *p = strrchr(tok[2],'/');
if (p)
{
@ -527,11 +527,11 @@ static BOOL parse_lpq_aix(char *line,print_queue_struct *buf,BOOL first)
buf->size = atoi(tok[8]) * 1024;
/* if the fname contains a space then use STDIN */
if (strchr(tok[4],' '))
strcpy(tok[4],"STDIN");
fstrcpy(tok[4],"STDIN");
/* only take the last part of the filename */
{
string tmp;
fstring tmp;
char *p = strrchr(tok[4],'/');
if (p)
{
@ -568,7 +568,7 @@ static BOOL parse_lpq_hpux(char * line, print_queue_struct *buf, BOOL first)
{
/* must read two lines to process, therefore keep some values static */
static BOOL header_line_ok=False, base_prio_reset=False;
static string jobuser;
static fstring jobuser;
static int jobid;
static int jobprio;
static time_t jobtime;
@ -579,7 +579,7 @@ static BOOL parse_lpq_hpux(char * line, print_queue_struct *buf, BOOL first)
int count;
char TAB = '\011';
string tok[12];
fstring tok[12];
/* If a line begins with a horizontal TAB, it is a subline type */
@ -604,7 +604,7 @@ static BOOL parse_lpq_hpux(char * line, print_queue_struct *buf, BOOL first)
/* if the fname contains a space then use STDIN */
if (strchr(tok[0],' '))
strcpy(tok[0],"STDIN");
fstrcpy(tok[0],"STDIN");
buf->size = atoi(tok[1]);
StrnCpy(buf->file,tok[0],sizeof(buf->file)-1);
@ -674,7 +674,7 @@ dcslw-897 tridge 4712 Dec 20 10:30:30 being held
****************************************************************************/
static BOOL parse_lpq_sysv(char *line,print_queue_struct *buf,BOOL first)
{
string tok[9];
fstring tok[9];
int count=0;
char *p;
@ -694,7 +694,7 @@ static BOOL parse_lpq_sysv(char *line,print_queue_struct *buf,BOOL first)
/* if the user contains a ! then trim the first part of it */
if ((p=strchr(tok[2],'!')))
{
string tmp;
fstring tmp;
fstrcpy(tmp,p+1);
fstrcpy(tok[2],tmp);
}
@ -727,7 +727,7 @@ Printer: txt (ready)
****************************************************************************/
static BOOL parse_lpq_qnx(char *line,print_queue_struct *buf,BOOL first)
{
string tok[7];
fstring tok[7];
int count=0;
DEBUG(0,("antes [%s]\n", line));
@ -756,7 +756,7 @@ static BOOL parse_lpq_qnx(char *line,print_queue_struct *buf,BOOL first)
/* only take the last part of the filename */
{
string tmp;
fstring tmp;
char *p = strrchr(tok[6],'/');
if (p)
{
@ -792,7 +792,7 @@ Local Printer 'lp2' (fjall):
****************************************************************************/
static BOOL parse_lpq_plp(char *line,print_queue_struct *buf,BOOL first)
{
string tok[11];
fstring tok[11];
int count=0;
/* handle the case of "(standard input)" as a filename */
@ -816,11 +816,11 @@ static BOOL parse_lpq_plp(char *line,print_queue_struct *buf,BOOL first)
/* if the fname contains a space then use STDIN */
if (strchr(tok[6],' '))
strcpy(tok[6],"STDIN");
fstrcpy(tok[6],"STDIN");
/* only take the last part of the filename */
{
string tmp;
fstring tmp;
char *p = strrchr(tok[6],'/');
if (p)
{
@ -862,7 +862,7 @@ Total: 21268 bytes in queue
****************************************************************************/
static BOOL parse_lpq_softq(char *line,print_queue_struct *buf,BOOL first)
{
string tok[10];
fstring tok[10];
int count=0;
/* mung all the ":"s to spaces*/
@ -1081,7 +1081,7 @@ int get_printqueue(int snum,int cnum,print_queue_struct **queue,
}
if (status) {
strcpy(status->message,"");
fstrcpy(status->message,"");
status->status = LPSTAT_OK;
}
@ -1142,7 +1142,7 @@ void del_printqueue(int cnum,int snum,int jobid)
return;
}
sprintf(jobstr,"%d",jobid);
slprintf(jobstr,sizeof(jobstr)-1,"%d",jobid);
pstrcpy(syscmd,lprm_command);
string_sub(syscmd,"%p",printername);
@ -1180,7 +1180,7 @@ void status_printjob(int cnum,int snum,int jobid,int status)
return;
}
sprintf(jobstr,"%d",jobid);
slprintf(jobstr,sizeof(jobstr)-1,"%d",jobid);
pstrcpy(syscmd,lpstatus_command);
string_sub(syscmd,"%p",printername);

View File

@ -675,13 +675,16 @@ Error was %s\n", pipe_name, cli->desthost, cli_errstr(cli)));
* Setup the remote server name prefixed by \ and the machine account name.
*/
sprintf(cli->srv_name_slash, "\\\\%s", cli->desthost);
fstrcpy(cli->srv_name_slash, "\\\\");
fstrcat(cli->srv_name_slash, cli->desthost);
strupper(cli->srv_name_slash);
sprintf(cli->clnt_name_slash, "\\\\%s", global_myname);
fstrcpy(cli->clnt_name_slash, "\\\\");
fstrcat(cli->clnt_name_slash, global_myname);
strupper(cli->clnt_name_slash);
sprintf(cli->mach_acct, "%s$", global_myname);
fstrcpy(cli->mach_acct, global_myname);
fstrcat(cli->mach_acct, "$");
strupper(cli->mach_acct);
return True;

View File

@ -56,7 +56,7 @@ BOOL trust_account_check(struct in_addr dest_ip, char *dest_host,
fstrcpy(mach_pwd, myhostname);
strlower(mach_pwd);
sprintf(tmp, "Enter Workstation Trust Account password for [%s].\nDefault is [%s].\nPassword:",
slprintf(tmp, sizeof(tmp) - 1,"Enter Workstation Trust Account password for [%s].\nDefault is [%s].\nPassword:",
mach_acct, mach_pwd);
start_mach_pwd = (char*)getpass(tmp);
@ -66,7 +66,7 @@ BOOL trust_account_check(struct in_addr dest_ip, char *dest_host,
fstrcpy(mach_pwd, start_mach_pwd);
}
sprintf(tmp, "Enter new Workstation Trust Account password for [%s]\nPress Return to leave at old value.\nNew Password:",
slprintf(tmp, sizeof(tmp)-1, "Enter new Workstation Trust Account password for [%s]\nPress Return to leave at old value.\nNew Password:",
mach_acct);
change_mach_pwd = (char*)getpass(tmp);

View File

@ -416,14 +416,14 @@ void lsa_io_sid_enum(char *desc, LSA_SID_ENUM *sen, prs_struct *ps, int depth)
for (i = 0; i < sen->num_entries; i++)
{
fstring temp;
sprintf(temp, "ptr_sid[%d]", i);
slprintf(temp, sizeof(temp) - 1, "ptr_sid[%d]", i);
prs_uint32(temp, ps, depth, &(sen->ptr_sid[i])); /* domain SID pointers to be looked up. */
}
for (i = 0; i < sen->num_entries; i++)
{
fstring temp;
sprintf(temp, "sid[%d]", i);
slprintf(temp, sizeof(temp) - 1, "sid[%d]", i);
smb_io_dom_sid2(temp, &(sen->sid[i]), ps, depth); /* domain SIDs to be looked up. */
}
}
@ -470,7 +470,7 @@ void lsa_io_trans_names(char *desc, LSA_TRANS_NAME_ENUM *trn, prs_struct *ps, in
for (i = 0; i < trn->num_entries; i++)
{
fstring temp;
sprintf(temp, "ptr_name[%d] ", i);
slprintf(temp, sizeof(temp) - 1, "ptr_name[%d] ", i);
prs_uint32(temp, ps, depth, &(trn->ptr_name[i])); /* pointer to translated name */
}
@ -479,7 +479,7 @@ void lsa_io_trans_names(char *desc, LSA_TRANS_NAME_ENUM *trn, prs_struct *ps, in
if (trn->ptr_name[i] != 0)
{
fstring temp;
sprintf(temp, "name[%d] ", i);
slprintf(temp, sizeof(temp) - 1, "name[%d] ", i);
lsa_io_trans_name(temp, &(trn->name[i2]), ps, depth); /* translated name */
i2++;
}

View File

@ -190,7 +190,7 @@ void smb_io_dom_sid(char *desc, DOM_SID *sid, prs_struct *ps, int depth)
for (i = 0; i < 6; i++)
{
fstring tmp;
sprintf(tmp, "id_auth[%d] ", i);
slprintf(tmp, sizeof(tmp) - 1, "id_auth[%d] ", i);
prs_uint8 (tmp, ps, depth, &(sid->id_auth[i]));
}

View File

@ -1492,7 +1492,7 @@ void samr_io_q_lookup_ids(char *desc, SAMR_Q_LOOKUP_IDS *q_u, prs_struct *ps, i
for (i = 0; i < q_u->num_sids2; i++)
{
sprintf(tmp, "ptr[%02d]", i);
slprintf(tmp, sizeof(tmp) - 1, "ptr[%02d]", i);
prs_uint32(tmp, ps, depth, &(q_u->ptr_sid[i]));
}
@ -1500,7 +1500,7 @@ void samr_io_q_lookup_ids(char *desc, SAMR_Q_LOOKUP_IDS *q_u, prs_struct *ps, i
{
if (q_u->ptr_sid[i] != 0)
{
sprintf(tmp, "sid[%02d]", i);
slprintf(tmp, sizeof(tmp)-1, "sid[%02d]", i);
smb_io_dom_sid2(tmp, &(q_u->sid[i]), ps, depth);
}
}
@ -1564,7 +1564,7 @@ void samr_io_r_lookup_ids(char *desc, SAMR_R_LOOKUP_IDS *r_u, prs_struct *ps, i
for (i = 0; i < r_u->num_entries2; i++)
{
sprintf(tmp, "rid[%02d]", i);
slprintf(tmp, sizeof(tmp)-1, "rid[%02d]", i);
prs_uint32(tmp, ps, depth, &(r_u->rid[i]));
}
}
@ -1723,7 +1723,7 @@ void samr_io_q_unknown_12(char *desc, SAMR_Q_UNKNOWN_12 *q_u, prs_struct *ps, i
for (i = 0; i < q_u->num_gids2; i++)
{
sprintf(tmp, "gid[%02d] ", i);
slprintf(tmp, sizeof(tmp) - 1, "gid[%02d] ", i);
prs_uint32(tmp, ps, depth, &(q_u->gid[i]));
}
@ -1797,12 +1797,12 @@ void samr_io_r_unknown_12(char *desc, SAMR_R_UNKNOWN_12 *r_u, prs_struct *ps, i
{
for (i = 0; i < r_u->num_aliases2; i++)
{
sprintf(tmp, "als_hdr[%02d] ", i);
slprintf(tmp, sizeof(tmp) - 1, "als_hdr[%02d] ", i);
smb_io_unihdr ("", &(r_u->hdr_als_name[i]), ps, depth);
}
for (i = 0; i < r_u->num_aliases2; i++)
{
sprintf(tmp, "als_str[%02d] ", i);
slprintf(tmp, sizeof(tmp) - 1, "als_str[%02d] ", i);
smb_io_unistr2("", &(r_u->uni_als_name[i]), r_u->hdr_als_name[i].buffer, ps, depth);
}
}
@ -1817,7 +1817,7 @@ void samr_io_r_unknown_12(char *desc, SAMR_R_UNKNOWN_12 *r_u, prs_struct *ps, i
{
for (i = 0; i < r_u->num_als_usrs2; i++)
{
sprintf(tmp, "als_usrs[%02d] ", i);
slprintf(tmp, sizeof(tmp) - 1, "als_usrs[%02d] ", i);
prs_uint32(tmp, ps, depth, &(r_u->num_als_usrs[i]));
}
}

View File

@ -279,7 +279,7 @@ static void api_net_req_chal( int uid,
fstrcpy(mach_name, mach_acct);
strlower(mach_name);
strcat(mach_acct, "$");
fstrcat(mach_acct, "$");
if (get_md4pw((char *)vuser->dc.md4pw, mach_name, mach_acct))
{

View File

@ -231,9 +231,9 @@ static void samr_reply_unknown_3(SAMR_Q_UNKNOWN_3 *q_u,
if (status == 0x0)
{
strcpy(user_sid, lp_domain_sid());
sprintf(user_rid, "-%x", rid);
strcat(user_sid, user_rid);
fstrcpy(user_sid, lp_domain_sid());
slprintf(user_rid, sizeof(user_rid) - 1, "-%x", rid);
fstrcat(user_sid, user_rid);
/* maybe need another 1 or 2 (S-1-5-20-0x220 and S-1-5-20-0x224) */
/* these two are DOMAIN_ADMIN and DOMAIN_ACCT_OP group RIDs */

View File

@ -297,22 +297,22 @@ void get_domain_user_groups(char *domain_groups, char *user)
/* can only be a user or a guest. cannot be guest _and_ admin */
if (user_in_list(user, lp_domain_guest_users()))
{
sprintf(tmp, " %ld/7 ", DOMAIN_GROUP_RID_GUESTS);
strcat(domain_groups, tmp);
slprintf(tmp, sizeof(tmp) - 1, " %ld/7 ", DOMAIN_GROUP_RID_GUESTS);
pstrcat(domain_groups, tmp);
DEBUG(3,("domain guest access %s granted\n", tmp));
}
else
{
sprintf(tmp, " %ld/7 ", DOMAIN_GROUP_RID_USERS);
strcat(domain_groups, tmp);
slprintf(tmp, sizeof(tmp) -1, " %ld/7 ", DOMAIN_GROUP_RID_USERS);
pstrcat(domain_groups, tmp);
DEBUG(3,("domain user access %s granted\n", tmp));
if (user_in_list(user, lp_domain_admin_users()))
{
sprintf(tmp, " %ld/7 ", DOMAIN_GROUP_RID_ADMINS);
strcat(domain_groups, tmp);
slprintf(tmp, sizeof(tmp) - 1, " %ld/7 ", DOMAIN_GROUP_RID_ADMINS);
pstrcat(domain_groups, tmp);
DEBUG(3,("domain admin access %s granted\n", tmp));
}

View File

@ -62,7 +62,7 @@ static int findpty(char **slave)
#if defined(SVR4) || defined(SUNOS5)
extern char *ptsname();
#else /* defined(SVR4) || defined(SUNOS5) */
static char line[12];
static fstring line;
void *dirp;
char *dpname;
#endif /* defined(SVR4) || defined(SUNOS5) */
@ -75,7 +75,7 @@ static int findpty(char **slave)
return (master);
}
#else /* defined(SVR4) || defined(SUNOS5) */
strcpy( line, "/dev/ptyXX" );
fstrcpy( line, "/dev/ptyXX" );
dirp = OpenDir(-1, "/dev", True);
if (!dirp) return(-1);

View File

@ -48,9 +48,9 @@ BOOL yield_connection(int cnum,char *name,int max_connections)
pstrcpy(fname,lp_lockdir());
trim_string(fname,"","/");
strcat(fname,"/");
strcat(fname,name);
strcat(fname,".LCK");
pstrcat(fname,"/");
pstrcat(fname,name);
pstrcat(fname,".LCK");
fd = open(fname,O_RDWR);
if (fd == -1) {
@ -133,9 +133,9 @@ BOOL claim_connection(int cnum,char *name,int max_connections,BOOL Clear)
if (!directory_exist(fname,NULL))
mkdir(fname,0755);
strcat(fname,"/");
strcat(fname,name);
strcat(fname,".LCK");
pstrcat(fname,"/");
pstrcat(fname,name);
pstrcat(fname,".LCK");
if (!file_exist(fname,NULL)) {
fd = open(fname,O_RDWR|O_CREAT|O_EXCL, 0644);

View File

@ -469,10 +469,10 @@ BOOL get_dir_entry(int cnum,char *mask,int dirtype,char *fname,int *size,int *mo
*path = 0;
pstrcpy(path,Connections[cnum].dirpath);
if(needslash)
strcat(path,"/");
pstrcat(path,"/");
pstrcpy(pathreal,path);
strcat(path,fname);
strcat(pathreal,dname);
pstrcat(path,fname);
pstrcat(pathreal,dname);
if (sys_stat(pathreal,&sbuf) != 0)
{
DEBUG(5,("Couldn't stat 1 [%s]\n",path));
@ -552,7 +552,7 @@ void *OpenDir(int cnum, char *name, BOOL use_veto)
dirp->mallocsize = s;
dirp->current = dirp->data;
}
strcpy(dirp->data+used,n);
pstrcpy(dirp->data+used,n);
used += l;
dirp->numentries++;
}
@ -671,9 +671,9 @@ void DirCacheAdd( char *path, char *name, char *dname, int snum )
return; /* so just return as if nothing happened. */
/* Set pointers correctly and load values. */
entry->path = strcpy( (char *)&entry[1], path);
entry->name = strcpy( &(entry->path[pathlen]), name);
entry->dname = strcpy( &(entry->name[namelen]), dname);
entry->path = pstrcpy( (char *)&entry[1], path);
entry->name = pstrcpy( &(entry->path[pathlen]), name);
entry->dname = pstrcpy( &(entry->name[namelen]), dname);
entry->snum = snum;
/* Add the new entry to the linked list. */

View File

@ -491,7 +491,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 */
strcpy(drivdata+8,"NULL");
pstrcpy(drivdata+8,"NULL");
PACKl(desc,"l",drivdata,sizeof drivdata); /* pDriverData */
}
@ -650,7 +650,7 @@ static void fill_printq_info(int cnum, int snum, int uLevel,
FILE *f;
pstring fname;
strcpy(fname,lp_driverfile());
pstrcpy(fname,lp_driverfile());
f=fopen(fname,"r");
if (!f) {
DEBUG(3,("fill_printq_info: Can't open %s - %s\n",fname,strerror(errno)));
@ -748,7 +748,7 @@ int get_printerdrivernumber(int snum)
FILE *f;
pstring fname;
strcpy(fname,lp_driverfile());
pstrcpy(fname,lp_driverfile());
DEBUG(4,("In get_printerdrivernumber: %s\n",fname));
f=fopen(fname,"r");
@ -993,8 +993,8 @@ static int get_server_info(uint32 servertype,
pstrcpy(fname,lp_lockdir());
trim_string(fname,NULL,"/");
strcat(fname,"/");
strcat(fname,SERVER_LIST);
pstrcat(fname,"/");
pstrcat(fname,SERVER_LIST);
f = fopen(fname,"r");
@ -1036,7 +1036,7 @@ static int get_server_info(uint32 servertype,
if (!next_token(&ptr,s->comment, NULL)) continue;
if (!next_token(&ptr,s->domain , NULL)) {
/* this allows us to cope with an old nmbd */
strcpy(s->domain,global_myworkgroup);
pstrcpy(s->domain,global_myworkgroup);
}
if (sscanf(stype,"%X",&s->type) != 1) {
@ -2115,18 +2115,18 @@ static BOOL api_NetWkstaGetInfo(int cnum,uint16 vuid, char *param,char *data,
SIVAL(p,0,PTR_DIFF(p2,*rdata)); /* host name */
strcpy(p2,local_machine);
pstrcpy(p2,local_machine);
strupper(p2);
p2 = skip_string(p2,1);
p += 4;
SIVAL(p,0,PTR_DIFF(p2,*rdata));
strcpy(p2,sesssetup_user);
pstrcpy(p2,sesssetup_user);
p2 = skip_string(p2,1);
p += 4;
SIVAL(p,0,PTR_DIFF(p2,*rdata)); /* login domain */
strcpy(p2,global_myworkgroup);
pstrcpy(p2,global_myworkgroup);
strupper(p2);
p2 = skip_string(p2,1);
p += 4;
@ -2136,12 +2136,12 @@ static BOOL api_NetWkstaGetInfo(int cnum,uint16 vuid, char *param,char *data,
p += 2;
SIVAL(p,0,PTR_DIFF(p2,*rdata));
strcpy(p2,global_myworkgroup); /* don't know. login domain?? */
pstrcpy(p2,global_myworkgroup); /* don't know. login domain?? */
p2 = skip_string(p2,1);
p += 4;
SIVAL(p,0,PTR_DIFF(p2,*rdata)); /* don't know */
strcpy(p2,"");
pstrcpy(p2,"");
p2 = skip_string(p2,1);
p += 4;
@ -2378,16 +2378,16 @@ static BOOL api_RNetUserGetInfo(int cnum,uint16 vuid, char *param,char *data,
if (uLevel >= 10)
{
SIVAL(p,usri11_comment,PTR_DIFF(p2,p)); /* comment */
strcpy(p2,"Comment");
pstrcpy(p2,"Comment");
p2 = skip_string(p2,1);
SIVAL(p,usri11_usr_comment,PTR_DIFF(p2,p)); /* user_comment */
strcpy(p2,"UserComment");
pstrcpy(p2,"UserComment");
p2 = skip_string(p2,1);
/* EEK! the cifsrap.txt doesn't have this in!!!! */
SIVAL(p,usri11_full_name,PTR_DIFF(p2,p)); /* full name */
strcpy(p2,((vuser != NULL) ? vuser->real_name : UserName));
pstrcpy(p2,((vuser != NULL) ? vuser->real_name : UserName));
p2 = skip_string(p2,1);
}
@ -2397,22 +2397,22 @@ static BOOL api_RNetUserGetInfo(int cnum,uint16 vuid, char *param,char *data,
SIVAL(p,usri11_auth_flags,AF_OP_PRINT); /* auth flags */
SIVALS(p,usri11_password_age,-1); /* password age */
SIVAL(p,usri11_homedir,PTR_DIFF(p2,p)); /* home dir */
strcpy(p2, lp_logon_path());
pstrcpy(p2, lp_logon_path());
p2 = skip_string(p2,1);
SIVAL(p,usri11_parms,PTR_DIFF(p2,p)); /* parms */
strcpy(p2,"");
pstrcpy(p2,"");
p2 = skip_string(p2,1);
SIVAL(p,usri11_last_logon,0); /* last logon */
SIVAL(p,usri11_last_logoff,0); /* last logoff */
SSVALS(p,usri11_bad_pw_count,-1); /* bad pw counts */
SSVALS(p,usri11_num_logons,-1); /* num logons */
SIVAL(p,usri11_logon_server,PTR_DIFF(p2,p)); /* logon server */
strcpy(p2,"\\\\*");
pstrcpy(p2,"\\\\*");
p2 = skip_string(p2,1);
SSVAL(p,usri11_country_code,0); /* country code */
SIVAL(p,usri11_workstations,PTR_DIFF(p2,p)); /* workstations */
strcpy(p2,"");
pstrcpy(p2,"");
p2 = skip_string(p2,1);
SIVALS(p,usri11_max_storage,-1); /* max storage */
@ -2433,7 +2433,7 @@ static BOOL api_RNetUserGetInfo(int cnum,uint16 vuid, char *param,char *data,
SSVAL(p,42,
Connections[cnum].admin_user?USER_PRIV_ADMIN:USER_PRIV_USER);
SIVAL(p,44,PTR_DIFF(p2,*rdata)); /* home dir */
strcpy(p2,lp_logon_path());
pstrcpy(p2,lp_logon_path());
p2 = skip_string(p2,1);
SIVAL(p,48,PTR_DIFF(p2,*rdata)); /* comment */
*p2++ = 0;
@ -2443,11 +2443,11 @@ static BOOL api_RNetUserGetInfo(int cnum,uint16 vuid, char *param,char *data,
{
SIVAL(p,60,0); /* auth_flags */
SIVAL(p,64,PTR_DIFF(p2,*rdata)); /* full_name */
strcpy(p2,((vuser != NULL) ? vuser->real_name : UserName));
pstrcpy(p2,((vuser != NULL) ? vuser->real_name : UserName));
p2 = skip_string(p2,1);
SIVAL(p,68,0); /* urs_comment */
SIVAL(p,72,PTR_DIFF(p2,*rdata)); /* parms */
strcpy(p2,"");
pstrcpy(p2,"");
p2 = skip_string(p2,1);
SIVAL(p,76,0); /* workstations */
SIVAL(p,80,0); /* last_logon */
@ -2461,7 +2461,7 @@ static BOOL api_RNetUserGetInfo(int cnum,uint16 vuid, char *param,char *data,
SSVALS(p,102,-1); /* bad_pw_count */
SSVALS(p,104,-1); /* num_logons */
SIVAL(p,106,PTR_DIFF(p2,*rdata)); /* logon_server */
strcpy(p2,"\\\\%L");
pstrcpy(p2,"\\\\%L");
standard_sub_basic(p2);
p2 = skip_string(p2,1);
SSVAL(p,110,49); /* country_code */
@ -2512,10 +2512,10 @@ static BOOL api_NetUserGetGroups(int cnum,uint16 vuid, char *param,char *data,
p = *rdata;
/* XXXX we need a real SAM database some day */
strcpy(p,"Users"); p += 21; count++;
strcpy(p,"Domain Users"); p += 21; count++;
strcpy(p,"Guests"); p += 21; count++;
strcpy(p,"Domain Guests"); p += 21; count++;
pstrcpy(p,"Users"); p += 21; count++;
pstrcpy(p,"Domain Users"); p += 21; count++;
pstrcpy(p,"Guests"); p += 21; count++;
pstrcpy(p,"Domain Guests"); p += 21; count++;
*rdata_len = PTR_DIFF(p,*rdata);
@ -2574,8 +2574,8 @@ static BOOL api_WWkstaUserLogon(int cnum,uint16 vuid, char *param,char *data,
PACKI(&desc,"D",-1); /* password must change */
{
fstring mypath;
strcpy(mypath,"\\\\");
strcat(mypath,local_machine);
fstrcpy(mypath,"\\\\");
fstrcat(mypath,local_machine);
strupper(mypath);
PACKS(&desc,"z",mypath); /* computer */
}
@ -3129,8 +3129,8 @@ static BOOL api_pipe_bind_req(pipes_struct *p, prs_struct *pd)
}
/* name has to be \PIPE\xxxxx */
strcpy(ack_pipe_name, "\\PIPE\\");
strcat(ack_pipe_name, p->pipe_srv_name);
fstrcpy(ack_pipe_name, "\\PIPE\\");
fstrcat(ack_pipe_name, p->pipe_srv_name);
DEBUG(5,("api_pipe_bind_req: make response. %d\n", __LINE__));

View File

@ -648,9 +648,9 @@ BOOL check_mangled_cache( char *s )
DEBUG( 3, ("Found %s on mangled stack ", s) );
(void)strcpy( s, found_name );
(void)pstrcpy( s, found_name );
if( ext_start )
(void)strcat( s, ext_start );
(void)pstrcat( s, ext_start );
DEBUG( 3, ("as %s\n", s) );
@ -830,7 +830,7 @@ static void do_fwd_mangled_map(char *s, char *MangledMap)
*
* ************************************************************************** **
*/
void mangle_name_83( char *s )
void mangle_name_83( char *s, int s_len )
{
int csum = str_checksum(s);
char *p;
@ -863,7 +863,7 @@ void mangle_name_83( char *s )
if( p )
{
if( p == s )
strcpy( extension, "___" );
safe_strcpy( extension, "___", 3 );
else
{
*p++ = 0;
@ -933,13 +933,13 @@ void mangle_name_83( char *s )
csum = csum % (36*36);
(void)sprintf( s, "%s%c%c%c",
(void)slprintf( s, s_len - 1, "%s%c%c%c",
base, magic_char, base36( csum/36 ), base36( csum ) );
if( *extension )
{
(void)strcat( s, "." );
(void)strcat( s, extension );
(void)pstrcat( s, "." );
(void)pstrcat( s, extension );
}
DEBUG( 5, ( "%s\n", s ) );
@ -996,7 +996,7 @@ BOOL name_map_mangle( char *OutName, BOOL need83, int snum )
/* mangle it into 8.3 */
tmp = strdup( OutName );
mangle_name_83( OutName );
mangle_name_83( OutName, strlen(tmp) );
if( tmp )
{
cache_mangled_name( OutName, tmp );

View File

@ -349,8 +349,8 @@ void add_session_user(char *user)
DEBUG(1,("Too many session users??\n"));
else
{
strcat(session_users," ");
strcat(session_users,suser);
pstrcat(session_users," ");
pstrcat(session_users,suser);
}
}
}
@ -364,7 +364,7 @@ static struct spwd *getspnam(char *username) /* fake shadow password routine */
{
FILE *f;
char line[1024];
static char pw[20];
static fstring pw;
static struct spwd static_spwd;
static_spwd.sp_pwdp=0;
@ -380,7 +380,7 @@ static struct spwd *getspnam(char *username) /* fake shadow password routine */
*q=0;
if (q-p+1>20)
break;
strcpy(pw, p);
fstrcpy(pw, p);
static_spwd.sp_pwdp=pw;
}
break;
@ -415,7 +415,7 @@ static char *osf1_bigcrypt(char *password,char *salt1)
for (i=0; i<parts;i++)
{
p1 = crypt(p2,salt);
strcat(result,p1+2);
strncat(result,p1+2,AUTH_MAX_PASSWD_LENGTH-strlen(p1+2)-1);
StrnCpy(salt,&result[2+i*AUTH_CIPHERTEXT_SEG_CHARS],2);
p2 += AUTH_CLEARTEXT_SEG_CHARS;
}
@ -809,9 +809,9 @@ static BOOL krb4_auth(char *this_user,char *password)
char tkfile[MAXPATHLEN];
if (krb_get_lrealm(realm, 1) != KSUCCESS)
(void) strncpy(realm, KRB_REALM, sizeof (realm));
(void) safe_strcpy(realm, KRB_REALM, sizeof (realm) - 1);
(void) sprintf(tkfile, "/tmp/samba_tkt_%d", getpid());
(void) slprintf(tkfile, sizeof(tkfile) - 1, "/tmp/samba_tkt_%d", getpid());
krb_set_tkt_string(tkfile);
if (krb_verify_user(this_user, "", realm,
@ -1217,8 +1217,8 @@ BOOL password_ok(char *user,char *password, int pwlen, struct passwd *pwd)
mypasswd = getprpwnam (user);
if ( mypasswd )
{
strcpy(pass->pw_name,mypasswd->ufld.fd_name);
strcpy(pass->pw_passwd,mypasswd->ufld.fd_encrypt);
fstrcpy(pass->pw_name,mypasswd->ufld.fd_name);
fstrcpy(pass->pw_passwd,mypasswd->ufld.fd_encrypt);
}
else
{
@ -1233,20 +1233,20 @@ BOOL password_ok(char *user,char *password, int pwlen, struct passwd *pwd)
AUTHORIZATION *ap = getauthuid( pass->pw_uid );
if (ap)
{
strcpy( pass->pw_passwd, ap->a_password );
fstrcpy( pass->pw_passwd, ap->a_password );
endauthent();
}
}
#endif
/* extract relevant info */
strcpy(this_user,pass->pw_name);
strcpy(this_salt,pass->pw_passwd);
fstrcpy(this_user,pass->pw_name);
fstrcpy(this_salt,pass->pw_passwd);
#ifdef HPUX
/* The crypt on HPUX won't work with more than 2 salt characters. */
this_salt[2] = 0;
#endif /* HPUX */
strcpy(this_crypted,pass->pw_passwd);
fstrcpy(this_crypted,pass->pw_passwd);
if (!*this_crypted) {
if (!lp_null_passwords()) {
@ -1295,7 +1295,7 @@ BOOL password_ok(char *user,char *password, int pwlen, struct passwd *pwd)
update_protected_database(user,False);
/* restore it */
strcpy(password,pass2);
fstrcpy(password,pass2);
return(False);
}
@ -1314,7 +1314,7 @@ BOOL password_ok(char *user,char *password, int pwlen, struct passwd *pwd)
update_protected_database(user,False);
/* restore it */
strcpy(password,pass2);
fstrcpy(password,pass2);
return(False);
}
@ -1384,7 +1384,7 @@ static char *validate_group(char *group,char *password,int pwlen,int snum)
while (member && *member)
{
static fstring name;
strcpy(name,*member);
fstrcpy(name,*member);
if (user_ok(name,snum) &&
password_ok(name,password,pwlen,NULL))
return(&name[0]);
@ -1400,7 +1400,7 @@ static char *validate_group(char *group,char *password,int pwlen,int snum)
if (*(pwd->pw_passwd) && pwd->pw_gid == gptr->gr_gid) {
/* This Entry have PASSWORD and same GID then check pwd */
if (password_ok(NULL, password, pwlen, pwd)) {
strcpy(tm, pwd->pw_name);
fstrcpy(tm, pwd->pw_name);
endpwent ();
return tm;
}
@ -1460,7 +1460,7 @@ BOOL authorise_login(int snum,char *user,char *password, int pwlen,
if (!ok && (vuser != 0) && vuser->guest) {
if (user_ok(vuser->name,snum) &&
password_ok(vuser->name, password, pwlen, NULL)) {
strcpy(user, vuser->name);
fstrcpy(user, vuser->name);
vuser->guest = False;
DEBUG(3,("ACCEPTED: given password with registered user %s\n", user));
ok = True;
@ -1480,12 +1480,12 @@ BOOL authorise_login(int snum,char *user,char *password, int pwlen,
auser = strtok(NULL,LIST_SEP))
{
fstring user2;
strcpy(user2,auser);
fstrcpy(user2,auser);
if (!user_ok(user2,snum)) continue;
if (password_ok(user2,password, pwlen, NULL)) {
ok = True;
strcpy(user,user2);
fstrcpy(user,user2);
DEBUG(3,("ACCEPTED: session list username and given password ok\n"));
}
}
@ -1496,7 +1496,7 @@ BOOL authorise_login(int snum,char *user,char *password, int pwlen,
if (!ok && !lp_revalidate(snum) &&
(vuser != 0) && !vuser->guest &&
user_ok(vuser->name,snum)) {
strcpy(user,vuser->name);
fstrcpy(user,vuser->name);
*guest = False;
DEBUG(3,("ACCEPTED: validated uid ok as non-guest\n"));
ok = True;
@ -1526,19 +1526,19 @@ BOOL authorise_login(int snum,char *user,char *password, int pwlen,
if (auser)
{
ok = True;
strcpy(user,auser);
fstrcpy(user,auser);
DEBUG(3,("ACCEPTED: group username and given password ok\n"));
}
}
else
{
fstring user2;
strcpy(user2,auser);
fstrcpy(user2,auser);
if (user_ok(user2,snum) &&
password_ok(user2,password,pwlen,NULL))
{
ok = True;
strcpy(user,user2);
fstrcpy(user,user2);
DEBUG(3,("ACCEPTED: user list username and given password ok\n"));
}
}
@ -1553,7 +1553,7 @@ BOOL authorise_login(int snum,char *user,char *password, int pwlen,
StrnCpy(guestname,lp_guestaccount(snum),sizeof(guestname)-1);
if (Get_Pwnam(guestname,True))
{
strcpy(user,guestname);
fstrcpy(user,guestname);
ok = True;
DEBUG(3,("ACCEPTED: guest account and guest ok\n"));
}

View File

@ -138,7 +138,7 @@ BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize)
struct stat sbuf;
dev_t devno ;
static dev_t devno_cached = 0 ;
static char name[MNTMAXSTR] ;
static pstring name;
struct q_request request ;
struct qf_header header ;
static int quota_default = 0 ;
@ -172,7 +172,7 @@ BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize)
}
strcpy(name,mnt->mnt_dir) ;
pstrcpy(name,mnt->mnt_dir) ;
endmntent(fd) ;
if ( ! found )
@ -249,10 +249,10 @@ BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize)
struct quotctl command;
int file;
struct mnttab mnt;
static char name[MNT_LINE_MAX] ;
static pstring name;
#else
struct mntent *mnt;
static char name[MNTMAXSTR] ;
static pstring name;
#endif
FILE *fd;
struct stat sbuf;
@ -283,8 +283,8 @@ BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize)
}
}
strcpy(name,mnt.mnt_mountp) ;
strcat(name,"/quotas") ;
pstrcpy(name,mnt.mnt_mountp) ;
pstrcat(name,"/quotas") ;
fclose(fd) ;
#else
if ((fd = setmntent(MOUNTED, "r")) == NULL)
@ -302,7 +302,7 @@ BOOL disk_quotas(char *path, int *bsize, int *dfree, int *dsize)
}
}
strcpy(name,mnt->mnt_fsname) ;
pstrcpy(name,mnt->mnt_fsname) ;
endmntent(fd) ;
#endif

View File

@ -308,7 +308,7 @@ int reply_tcon_and_X(char *inbuf,char *outbuf,int length,int bufsize)
if (Protocol < PROTOCOL_NT1)
{
set_message(outbuf,2,strlen(devicename)+1,True);
strcpy(smb_buf(outbuf),devicename);
pstrcpy(smb_buf(outbuf),devicename);
}
else
{
@ -318,8 +318,8 @@ int reply_tcon_and_X(char *inbuf,char *outbuf,int length,int bufsize)
set_message(outbuf,3,3,True);
p = smb_buf(outbuf);
strcpy(p,devicename); p = skip_string(p,1); /* device name */
strcpy(p,fsname); p = skip_string(p,1); /* filesystem type e.g NTFS */
pstrcpy(p,devicename); p = skip_string(p,1); /* device name */
pstrcpy(p,fsname); p = skip_string(p,1); /* filesystem type e.g NTFS */
set_message(outbuf,3,PTR_DIFF(p,smb_buf(outbuf)),False);
@ -578,7 +578,7 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize)
/* If no username is sent use the guest account */
if (!*user)
{
strcpy(user,lp_guestaccount(-1));
pstrcpy(user,lp_guestaccount(-1));
/* If no user and no password then set guest flag. */
if( *smb_apasswd == 0)
guest = True;
@ -593,7 +593,7 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize)
*/
if((lp_security() != SEC_SHARE) || *user)
strcpy(sesssetup_user,user);
pstrcpy(sesssetup_user,user);
reload_services(True);
@ -641,7 +641,7 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize)
#endif
}
if (*smb_apasswd || !Get_Pwnam(user,True))
strcpy(user,lp_guestaccount(-1));
pstrcpy(user,lp_guestaccount(-1));
DEBUG(3,("Registered username %s for guest access\n",user));
guest = True;
}
@ -649,7 +649,7 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize)
if (!Get_Pwnam(user,True)) {
DEBUG(3,("No such user %s - using guest account\n",user));
strcpy(user,lp_guestaccount(-1));
pstrcpy(user,lp_guestaccount(-1));
guest = True;
}
@ -670,9 +670,9 @@ int reply_sesssetup_and_X(char *inbuf,char *outbuf,int length,int bufsize)
char *p;
set_message(outbuf,3,3,True);
p = smb_buf(outbuf);
strcpy(p,"Unix"); p = skip_string(p,1);
strcpy(p,"Samba "); strcat(p,VERSION); p = skip_string(p,1);
strcpy(p,global_myworkgroup); p = skip_string(p,1);
pstrcpy(p,"Unix"); p = skip_string(p,1);
pstrcpy(p,"Samba "); pstrcat(p,VERSION); p = skip_string(p,1);
pstrcpy(p,global_myworkgroup); p = skip_string(p,1);
set_message(outbuf,3,PTR_DIFF(p,smb_buf(outbuf)),False);
/* perhaps grab OS version here?? */
}
@ -984,7 +984,7 @@ int reply_search(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
p = strrchr(dir2,'/');
if (p == NULL)
{
strcpy(mask,dir2);
pstrcpy(mask,dir2);
*dir2 = 0;
}
else
@ -1000,7 +1000,7 @@ int reply_search(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
*p = 0;
if (strlen(directory) == 0)
strcpy(directory,"./");
pstrcpy(directory,"./");
bzero(status,21);
CVAL(status,0) = dirtype;
}
@ -1027,8 +1027,8 @@ int reply_search(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
fstrcpy(ext,p+1);
*p = 0;
trim_string(mask,NULL," ");
strcat(mask,".");
strcat(mask,ext);
pstrcat(mask,".");
pstrcat(mask,ext);
}
}
@ -1049,7 +1049,7 @@ int reply_search(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
fstrcpy(tmp,&mask[8]);
mask[8] = '.';
mask[9] = 0;
strcat(mask,tmp);
pstrcat(mask,tmp);
}
DEBUG(5,("mask=%s directory=%s\n",mask,directory));
@ -1566,7 +1566,7 @@ int reply_ctemp(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
cnum = SVAL(inbuf,smb_tid);
createmode = SVAL(inbuf,smb_vwv0);
pstrcpy(fname,smb_buf(inbuf)+1);
strcat(fname,"/TMXXXXXX");
pstrcat(fname,"/TMXXXXXX");
unix_convert(fname,cnum,0,&bad_path);
unixmode = unix_mode(cnum,createmode);
@ -1586,7 +1586,7 @@ int reply_ctemp(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
return(UNIXERROR(ERRDOS,ERRnoaccess));
}
strcpy(fname2,(char *)mktemp(fname));
pstrcpy(fname2,(char *)mktemp(fname));
/* Open file in dos compatibility share mode. */
/* We should fail if file exists. */
@ -1609,7 +1609,7 @@ int reply_ctemp(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
outsize = set_message(outbuf,1,2 + strlen(fname2),True);
SSVAL(outbuf,smb_vwv0,fnum);
CVAL(smb_buf(outbuf),0) = 4;
strcpy(smb_buf(outbuf) + 1,fname2);
pstrcpy(smb_buf(outbuf) + 1,fname2);
if (oplock_request && lp_fake_oplocks(SNUM(cnum))) {
CVAL(outbuf,smb_flg) |= CORE_OPLOCK_GRANTED;
@ -1678,12 +1678,12 @@ int reply_unlink(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
p = strrchr(name,'/');
if (!p) {
strcpy(directory,"./");
strcpy(mask,name);
pstrcpy(directory,"./");
pstrcpy(mask,name);
} else {
*p = 0;
strcpy(directory,name);
strcpy(mask,p+1);
pstrcpy(directory,name);
pstrcpy(mask,p+1);
}
if (is_mangled(mask))
@ -1692,8 +1692,8 @@ int reply_unlink(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
has_wild = strchr(mask,'*') || strchr(mask,'?');
if (!has_wild) {
strcat(directory,"/");
strcat(directory,mask);
pstrcat(directory,"/");
pstrcat(directory,mask);
if (can_delete(directory,cnum,dirtype) && !sys_unlink(directory)) count++;
if (!count) exists = file_exist(directory,NULL);
} else {
@ -1713,7 +1713,7 @@ int reply_unlink(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
error = ERRbadfile;
if (strequal(mask,"????????.???"))
strcpy(mask,"*");
pstrcpy(mask,"*");
while ((dname = ReadDirName(dirptr)))
{
@ -2636,7 +2636,7 @@ int reply_printopen(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
if (fnum < 0)
return(ERROR(ERRSRV,ERRnofids));
strcpy(fname2,(char *)mktemp(fname));
pstrcpy(fname2,(char *)mktemp(fname));
if (!check_name(fname2,cnum)) {
Files[fnum].reserved = False;
@ -2877,9 +2877,9 @@ static BOOL recursive_rmdir(char *directory)
ret = True;
break;
}
strcpy(fullname, directory);
strcat(fullname, "/");
strcat(fullname, dname);
pstrcpy(fullname, directory);
pstrcat(fullname, "/");
pstrcat(fullname, dname);
if(sys_lstat(fullname, &st) != 0)
{
@ -2971,8 +2971,8 @@ int reply_rmdir(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
break;
}
pstrcpy(fullname, directory);
strcat(fullname, "/");
strcat(fullname, dname);
pstrcat(fullname, "/");
pstrcat(fullname, dname);
if(sys_lstat(fullname, &st) != 0)
break;
@ -3078,10 +3078,10 @@ static BOOL resolve_wildcards(char *name1,char *name2)
if (*p) p++;
}
strcpy(name2,root2);
pstrcpy(name2,root2);
if (ext2[0]) {
strcat(name2,".");
strcat(name2,ext2);
pstrcat(name2,".");
pstrcat(name2,ext2);
}
return(True);
@ -3144,12 +3144,12 @@ int reply_mv(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
p = strrchr(name,'/');
if (!p) {
strcpy(directory,".");
strcpy(mask,name);
pstrcpy(directory,".");
pstrcpy(mask,name);
} else {
*p = 0;
strcpy(directory,name);
strcpy(mask,p+1);
pstrcpy(directory,name);
pstrcpy(mask,p+1);
*p = '/'; /* Replace needed for exceptional test below. */
}
@ -3162,16 +3162,16 @@ int reply_mv(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
BOOL is_short_name = is_8_3(name, True);
/* Add a terminating '/' to the directory name. */
strcat(directory,"/");
strcat(directory,mask);
pstrcat(directory,"/");
pstrcat(directory,mask);
/* Ensure newname contains a '/' also */
if(strrchr(newname,'/') == 0) {
pstring tmpstr;
strcpy(tmpstr, "./");
strcat(tmpstr, newname);
strcpy(newname, tmpstr);
pstrcpy(tmpstr, "./");
pstrcat(tmpstr, newname);
pstrcpy(newname, tmpstr);
}
DEBUG(3,("reply_mv : case_sensitive = %d, case_preserve = %d, short case preserve = %d, directory = %s, newname = %s, newname_last_component = %s, is_8_3 = %d\n",
@ -3197,7 +3197,7 @@ int reply_mv(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
* character above.
*/
p = strrchr(newname,'/');
strcpy(newname_modified_last_component,p+1);
pstrcpy(newname_modified_last_component,p+1);
if(strcsequal(newname_modified_last_component,
newname_last_component) == False) {
@ -3205,7 +3205,7 @@ int reply_mv(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
* Replace the modified last component with
* the original.
*/
strcpy(p+1, newname_last_component);
pstrcpy(p+1, newname_last_component);
}
}
@ -3235,7 +3235,7 @@ int reply_mv(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
error = ERRbadfile;
if (strequal(mask,"????????.???"))
strcpy(mask,"*");
pstrcpy(mask,"*");
while ((dname = ReadDirName(dirptr)))
{
@ -3309,8 +3309,8 @@ static BOOL copy_file(char *src,char *dest1,int cnum,int ofun,
p++;
else
p = src;
strcat(dest,"/");
strcat(dest,p);
pstrcat(dest,"/");
pstrcat(dest,p);
}
if (!file_exist(src,&st)) return(False);
@ -3415,12 +3415,12 @@ int reply_copy(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
p = strrchr(name,'/');
if (!p) {
strcpy(directory,"./");
strcpy(mask,name);
pstrcpy(directory,"./");
pstrcpy(mask,name);
} else {
*p = 0;
strcpy(directory,name);
strcpy(mask,p+1);
pstrcpy(directory,name);
pstrcpy(mask,p+1);
}
if (is_mangled(mask))
@ -3429,8 +3429,8 @@ int reply_copy(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
has_wild = strchr(mask,'*') || strchr(mask,'?');
if (!has_wild) {
strcat(directory,"/");
strcat(directory,mask);
pstrcat(directory,"/");
pstrcat(directory,mask);
if (resolve_wildcards(directory,newname) &&
copy_file(directory,newname,cnum,ofun,
count,target_is_directory)) count++;
@ -3448,7 +3448,7 @@ int reply_copy(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
error = ERRbadfile;
if (strequal(mask,"????????.???"))
strcpy(mask,"*");
pstrcpy(mask,"*");
while ((dname = ReadDirName(dirptr)))
{
@ -3459,7 +3459,7 @@ int reply_copy(char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
error = ERRnoaccess;
slprintf(fname,sizeof(fname)-1, "%s/%s",directory,dname);
strcpy(destname,newname);
pstrcpy(destname,newname);
if (resolve_wildcards(fname,destname) &&
copy_file(directory,newname,cnum,ofun,
count,target_is_directory)) count++;

View File

@ -427,8 +427,8 @@ static BOOL mangled_equal(char *name1, char *name2)
if (is_8_3(name2, True))
return(False);
strcpy(tmpname,name2);
mangle_name_83(tmpname);
pstrcpy(tmpname,name2);
mangle_name_83(tmpname,sizeof(tmpname));
return(strequal(name1,tmpname));
}
@ -453,7 +453,7 @@ static BOOL scan_directory(char *path, char *name,int cnum,BOOL docache)
path = ".";
if (docache && (dname = DirCacheCheck(path,name,SNUM(cnum)))) {
strcpy(name, dname);
pstrcpy(name, dname);
return(True);
}
@ -489,7 +489,7 @@ static BOOL scan_directory(char *path, char *name,int cnum,BOOL docache)
{
/* we've found the file, change it's name and return */
if (docache) DirCacheAdd(path,name,dname,SNUM(cnum));
strcpy(name, dname);
pstrcpy(name, dname);
CloseDir(cur_dir);
return(True);
}
@ -547,9 +547,9 @@ BOOL unix_convert(char *name,int cnum,pstring saved_last_component, BOOL *bad_pa
if(saved_last_component) {
end = strrchr(name, '/');
if(end)
strcpy(saved_last_component, end + 1);
pstrcpy(saved_last_component, end + 1);
else
strcpy(saved_last_component, name);
pstrcpy(saved_last_component, name);
}
if (!case_sensitive &&
@ -567,7 +567,7 @@ BOOL unix_convert(char *name,int cnum,pstring saved_last_component, BOOL *bad_pa
/* sanitise the name */
for (s=name2 ; *s ; s++)
if (!issafe(*s)) *s = '_';
strcpy(name,(char *)mktemp(name2));
pstrcpy(name,(char *)mktemp(name2));
}
return(True);
}
@ -604,7 +604,7 @@ BOOL unix_convert(char *name,int cnum,pstring saved_last_component, BOOL *bad_pa
if (end) *end = 0;
if(saved_last_component != 0)
strcpy(saved_last_component, end ? end + 1 : start);
pstrcpy(saved_last_component, end ? end + 1 : start);
/* check if the name exists up to this point */
if (sys_stat(name, &st) == 0)
@ -669,14 +669,14 @@ BOOL unix_convert(char *name,int cnum,pstring saved_last_component, BOOL *bad_pa
/* restore the rest of the string */
if (end)
{
strcpy(start+strlen(start)+1,rest);
pstrcpy(start+strlen(start)+1,rest);
end = start + strlen(start);
}
}
/* add to the dirpath that we have resolved so far */
if (*dirpath) strcat(dirpath,"/");
strcat(dirpath,start);
if (*dirpath) pstrcat(dirpath,"/");
pstrcat(dirpath,start);
/* restore the / that we wiped out earlier */
if (end) *end = '/';
@ -990,7 +990,7 @@ static int fd_attempt_open(char *fname, int flags, int mode)
if((fd == -1) && (errno == ENOENT) &&
(strchr(fname,'.')==NULL))
{
strcat(fname,".");
pstrcat(fname,".");
fd = sys_open(fname,flags,mode);
}
@ -3370,7 +3370,7 @@ int make_connection(char *service,char *user,char *password, int pwlen, char *de
{
if (validated_username(vuid))
{
strcpy(user,validated_username(vuid));
pstrcpy(user,validated_username(vuid));
return(make_connection(user,user,password,pwlen,dev,vuid));
}
}
@ -3381,7 +3381,7 @@ int make_connection(char *service,char *user,char *password, int pwlen, char *de
*/
if(*sesssetup_user)
{
strcpy(user,sesssetup_user);
pstrcpy(user,sesssetup_user);
return(make_connection(user,user,password,pwlen,dev,vuid));
}
}
@ -3393,14 +3393,14 @@ int make_connection(char *service,char *user,char *password, int pwlen, char *de
/* you can only connect to the IPC$ service as an ipc device */
if (strequal(service,"IPC$"))
strcpy(dev,"IPC");
pstrcpy(dev,"IPC");
if (*dev == '?' || !*dev)
{
if (lp_print_ok(snum))
strcpy(dev,"LPT1:");
pstrcpy(dev,"LPT1:");
else
strcpy(dev,"A:");
pstrcpy(dev,"A:");
}
/* if the request is as a printer and you can't print then refuse */
@ -3964,7 +3964,7 @@ int reply_nt1(char *outbuf)
data_len = crypt_len + strlen(global_myworkgroup) + 1;
set_message(outbuf,17,data_len,True);
strcpy(smb_buf(outbuf)+crypt_len, global_myworkgroup);
pstrcpy(smb_buf(outbuf)+crypt_len, global_myworkgroup);
CVAL(outbuf,smb_vwv1) = secword;
SSVALS(outbuf,smb_vwv16+1,crypt_len);
@ -4221,7 +4221,7 @@ void close_cnum(int cnum, uint16 vuid)
if (*lp_postexec(SNUM(cnum)) && become_user(&Connections[cnum], cnum,vuid))
{
pstring cmd;
strcpy(cmd,lp_postexec(SNUM(cnum)));
pstrcpy(cmd,lp_postexec(SNUM(cnum)));
standard_sub(cnum,cmd);
smbrun(cmd,NULL,False);
unbecome_user();
@ -4232,7 +4232,7 @@ void close_cnum(int cnum, uint16 vuid)
if (*lp_rootpostexec(SNUM(cnum)))
{
pstring cmd;
strcpy(cmd,lp_rootpostexec(SNUM(cnum)));
pstrcpy(cmd,lp_rootpostexec(SNUM(cnum)));
standard_sub(cnum,cmd);
smbrun(cmd,NULL,False);
}
@ -4270,7 +4270,7 @@ static BOOL dump_core(void)
pstring dname;
pstrcpy(dname,debugf);
if ((p=strrchr(dname,'/'))) *p=0;
strcat(dname,"/corefiles");
pstrcat(dname,"/corefiles");
mkdir(dname,0700);
sys_chown(dname,getuid(),getgid());
chmod(dname,0700);
@ -5060,9 +5060,9 @@ static void usage(char *pname)
TimeInit();
strcpy(debugf,SMBLOGFILE);
pstrcpy(debugf,SMBLOGFILE);
strcpy(remote_machine, "smb");
pstrcpy(remote_machine, "smb");
setup_logging(argv[0],False);
@ -5101,10 +5101,10 @@ static void usage(char *pname)
switch (opt)
{
case 'O':
strcpy(user_socket_options,optarg);
pstrcpy(user_socket_options,optarg);
break;
case 'i':
strcpy(scope,optarg);
pstrcpy(scope,optarg);
break;
case 'P':
{
@ -5113,10 +5113,10 @@ static void usage(char *pname)
}
break;
case 's':
strcpy(servicesf,optarg);
pstrcpy(servicesf,optarg);
break;
case 'l':
strcpy(debugf,optarg);
pstrcpy(debugf,optarg);
break;
case 'a':
{
@ -5185,7 +5185,7 @@ static void usage(char *pname)
codepage_initialise(lp_client_code_page());
strcpy(global_myworkgroup, lp_workgroup());
pstrcpy(global_myworkgroup, lp_workgroup());
#ifndef NO_SIGNAL_TEST
signal(SIGHUP,SIGNAL_CAST sig_hup);

View File

@ -325,7 +325,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
if(p != NULL)
{
if(p[1] == '\0')
strcpy(mask,"*.*");
pstrcpy(mask,"*.*");
else
pstrcpy(mask, p+1);
}
@ -368,8 +368,8 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
pstrcpy(pathreal,Connections[cnum].dirpath);
if(needslash)
strcat(pathreal,"/");
strcat(pathreal,dname);
pstrcat(pathreal,"/");
pstrcat(pathreal,dname);
if (sys_stat(pathreal,&sbuf) != 0)
{
DEBUG(5,("get_lanman2_dir_entry:Couldn't stat [%s] (%s)\n",pathreal,strerror(errno)));
@ -417,7 +417,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SIVAL(p,l1_cbFileAlloc,ROUNDUP(size,1024));
SSVAL(p,l1_attrFile,mode);
SCVAL(p,l1_cchName,strlen(fname));
strcpy(p + l1_achName, fname);
pstrcpy(p + l1_achName, fname);
nameptr = p + l1_achName;
p += l1_achName + strlen(fname) + 1;
break;
@ -436,7 +436,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SSVAL(p,l2_attrFile,mode);
SIVAL(p,l2_cbList,0); /* No extended attributes */
SCVAL(p,l2_cchName,strlen(fname));
strcpy(p + l2_achName, fname);
pstrcpy(p + l2_achName, fname);
nameptr = p + l2_achName;
p += l2_achName + strlen(fname) + 1;
break;
@ -451,7 +451,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SSVAL(p,24,mode);
SIVAL(p,26,4);
CVAL(p,30) = strlen(fname);
strcpy(p+31, fname);
pstrcpy(p+31, fname);
nameptr = p+31;
p += 31 + strlen(fname) + 1;
break;
@ -469,7 +469,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SIVAL(p,20,ROUNDUP(size,1024));
SSVAL(p,24,mode);
CVAL(p,32) = strlen(fname);
strcpy(p + 33, fname);
pstrcpy(p + 33, fname);
nameptr = p+33;
p += 33 + strlen(fname) + 1;
break;
@ -490,7 +490,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SIVAL(p,0,strlen(fname)); p += 4;
SIVAL(p,0,0); p += 4;
if (!was_8_3) {
strcpy(p+2,fname);
pstrcpy(p+2,fname);
if (!name_map_mangle(p+2,True,SNUM(cnum)))
(p+2)[12] = 0;
} else
@ -499,7 +499,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SSVAL(p,0,strlen(p+2));
p += 2 + 24;
/* nameptr = p; */
strcpy(p,fname); p += strlen(p);
pstrcpy(p,fname); p += strlen(p);
p = pdata + len;
break;
@ -516,7 +516,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SIVAL(p,0,size); p += 8;
SIVAL(p,0,nt_extmode); p += 4;
SIVAL(p,0,strlen(fname)); p += 4;
strcpy(p,fname);
pstrcpy(p,fname);
p = pdata + len;
break;
@ -535,7 +535,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SIVAL(p,0,nt_extmode); p += 4;
SIVAL(p,0,strlen(fname)); p += 4;
SIVAL(p,0,0); p += 4;
strcpy(p,fname);
pstrcpy(p,fname);
p = pdata + len;
break;
@ -545,7 +545,7 @@ static int get_lanman2_dir_entry(int cnum,char *path_mask,int dirtype,int info_l
SIVAL(p,0,len); p += 4;
SIVAL(p,0,reskey); p += 4;
SIVAL(p,0,strlen(fname)); p += 4;
strcpy(p,fname);
pstrcpy(p,fname);
p = pdata + len;
break;
@ -651,10 +651,10 @@ static int call_trans2findfirst(char *inbuf, char *outbuf, int bufsize, int cnum
p = strrchr(directory,'/');
if(p == NULL) {
strcpy(mask,directory);
strcpy(directory,"./");
pstrcpy(mask,directory);
pstrcpy(directory,"./");
} else {
strcpy(mask,p+1);
pstrcpy(mask,p+1);
*p = 0;
}
@ -686,7 +686,7 @@ static int call_trans2findfirst(char *inbuf, char *outbuf, int bufsize, int cnum
}
/* a special case for 16 bit apps */
if (strequal(mask,"????????.???")) strcpy(mask,"*");
if (strequal(mask,"????????.???")) pstrcpy(mask,"*");
/* handle broken clients that send us old 8.3 format */
string_sub(mask,"????????","*");
@ -863,8 +863,8 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
DEBUG(2,("dptr_num %d has no wildcard\n", dptr_num));
return (ERROR(ERRDOS,ERRnofiles));
}
strcpy(mask, p);
strcpy(directory,Connections[cnum].dirpath);
pstrcpy(mask, p);
pstrcpy(directory,Connections[cnum].dirpath);
/* Get the attr mask from the dptr */
dirtype = dptr_attr(dptr_num);
@ -1060,7 +1060,7 @@ static int call_trans2qfsinfo(char *inbuf, char *outbuf, int length, int bufsize
case SMB_QUERY_FS_LABEL_INFO:
data_len = 4 + strlen(vname);
SIVAL(pdata,0,strlen(vname));
strcpy(pdata+4,vname);
pstrcpy(pdata+4,vname);
break;
case SMB_QUERY_FS_VOLUME_INFO:
data_len = 18 + 2*strlen(vname);

View File

@ -50,7 +50,7 @@ extern int DEBUGLEVEL;
extern char *InBuffer, *OutBuffer;
extern int done_become_user;
char master_name [64], slave_name [64];
fstring master_name, slave_name;
int master, slave, i, o, e;
int ms_type = MS_NONE,
@ -202,8 +202,8 @@ int VT_Start(void)
#endif
if(ms_poll == MS_VTY || ms_poll == 0) {
strcpy(master_name, MASTER_TMPL);
strcpy(slave_name, SLAVE_TMPL);
fstrcpy(master_name, MASTER_TMPL);
fstrcpy(slave_name, SLAVE_TMPL);
for(X = LETTER1; *X && master < 0; X++)
for(Y = LETTER2; *Y && master < 0; Y++) {
@ -242,9 +242,9 @@ int VT_Start(void)
int i;
for(i = MIN_I; i <= MAX_I && master < 0; i++) {
sprintf(master_name, MASTER_TMPL, i);
slprintf(master_name, sizeof(fstring) - 1, MASTER_TMPL, i);
if((master = open(master_name, O_RDWR)) >= 0) {
sprintf(slave_name, SLAVE_TMPL, i);
slprintf(slave_name, sizeof(fstring) - 1, SLAVE_TMPL, i);
if((slave = open(slave_name, O_RDWR)) < 0)
close(master);
}

View File

@ -28,9 +28,9 @@
char *files_to_copy;
char *driverfile, *datafile, *helpfile, *languagemonitor, *datatype;
char buffer[50][255];
char sbuffer[50][255];
char sub_dir[50][2][255];
char buffer[50][sizeof(pstring)];
char sbuffer[50][sizeof(pstring)];
char sub_dir[50][2][sizeof(pstring)];
void usage(char *name)
{
@ -42,31 +42,31 @@ char *myfgets(char *s, int n, FILE *stream)
char *LString1;
char *LString2;
char *temp;
char String[255];
char NewString[255];
pstring String;
pstring NewString;
int i;
fgets(s,n,stream);
while ((LString1 = strchr(s,'%')) != NULL) {
if (!(LString2 = strchr(LString1+1,'%'))) break;
*LString2 = '\0';
strcpy(String,LString1+1);
pstrcpy(String,LString1+1);
i = 0;
while(*sbuffer[i]!='\0') {
if (strncmp(sbuffer[i],String,strlen(String))==0)
{
strcpy(String,sbuffer[i]);
pstrcpy(String,sbuffer[i]);
if ((temp = strchr(String,'=')) != NULL) ++temp;
strcpy(String,temp);
pstrcpy(String,temp);
break;
}
i++;
}
*LString1 = '\0';
strcpy(NewString,s);
strcat(NewString,String);
strcat(NewString,LString2+1);
strcpy(s, NewString);
pstrcpy(NewString,s);
pstrcat(NewString,String);
pstrcat(NewString,LString2+1);
pstrcpy(s, NewString);
}
return(s);
}
@ -82,15 +82,15 @@ char *scan(char *chaine,char **entry)
char *temp;
int i=0;
*entry=(char *)malloc(255*sizeof(char));
value=(char *)malloc(255*sizeof(char));
strcpy(*entry,chaine);
*entry=(char *)malloc(sizeof(pstring));
value=(char *)malloc(sizeof(pstring));
pstrcpy(*entry,chaine);
temp=chaine;
while( temp[i]!='=' && temp[i]!='\0') {
i++;
}
(*entry)[i]='\0';
strcpy(value,temp+i+1);
pstrcpy(value,temp+i+1);
return (value);
}
@ -107,12 +107,12 @@ void build_subdir(void)
#endif
if (strcmp(data,"11")==0) {
strcpy(sub_dir[i][0],entry);
strcpy(sub_dir[i][1],"");
pstrcpy(sub_dir[i][0],entry);
pstrcpy(sub_dir[i][1],"");
}
if (strcmp(data,"23")==0) {
strcpy(sub_dir[i][0],entry);
strcpy(sub_dir[i][1],"color\\");
pstrcpy(sub_dir[i][0],entry);
pstrcpy(sub_dir[i][1],"color\\");
}
#ifdef DEBUGIT
fprintf(stderr,"\tsubdir %s:%s\n",sub_dir[i][0],sub_dir[i][1]);
@ -131,12 +131,12 @@ void lookup_strings(FILE *fichier)
int found=0,pointeur=0,i=0;
char *temp,*temp2;
temp=(char *)malloc(255*sizeof(char));
temp2=(char *)malloc(255*sizeof(char));
temp=(char *)malloc(sizeof(pstring));
temp2=(char *)malloc(sizeof(pstring));
*sbuffer[0]='\0';
strcpy(temp2,"[Strings]");
pstrcpy(temp2,"[Strings]");
rewind(fichier);
#ifdef DEBUGIT
@ -158,7 +158,7 @@ void lookup_strings(FILE *fichier)
*sbuffer[pointeur]='\0';
}
else {
strcpy(sbuffer[pointeur],temp);
pstrcpy(sbuffer[pointeur],temp);
i=strlen(sbuffer[pointeur])-1;
while (sbuffer[pointeur][i]=='\r' || sbuffer[pointeur][i]=='\n')
sbuffer[pointeur][i--]='\0';
@ -181,14 +181,14 @@ void lookup_entry(FILE *fichier,char *chaine)
int found=0,pointeur=0,i=0;
char *temp,*temp2;
temp=(char *)malloc(255*sizeof(char));
temp2=(char *)malloc(255*sizeof(char));
temp=(char *)malloc(sizeof(pstring));
temp2=(char *)malloc(sizeof(pstring));
*buffer[0]='\0';
strcpy(temp2,"[");
strcat(temp2,chaine);
strcat(temp2,"]");
pstrcpy(temp2,"[");
pstrcat(temp2,chaine);
pstrcat(temp2,"]");
rewind(fichier);
#ifdef DEBUGIT
@ -210,7 +210,7 @@ void lookup_entry(FILE *fichier,char *chaine)
*buffer[pointeur]='\0';
}
else {
strcpy(buffer[pointeur],temp);
pstrcpy(buffer[pointeur],temp);
i=strlen(buffer[pointeur])-1;
while (buffer[pointeur][i]=='\r' || buffer[pointeur][i]=='\n')
buffer[pointeur][i--]='\0';
@ -232,9 +232,9 @@ char *find_desc(FILE *fichier,char *text)
int found=0;
chaine=(char *)malloc(255*sizeof(char));
long_desc=(char *)malloc(40*sizeof(char));
short_desc=(char *)malloc(40*sizeof(char));
chaine=(char *)malloc(sizeof(pstring));
long_desc=(char *)malloc(sizeof(pstring));
short_desc=(char *)malloc(sizeof(pstring));
if (!chaine || !long_desc || !short_desc) {
fprintf(stderr,"Unable to malloc memory\n");
exit(1);
@ -267,7 +267,7 @@ char *find_desc(FILE *fichier,char *text)
free(chaine);
if (!found || !crap) return(NULL);
while(*crap==' ') crap++;
strcpy(short_desc,crap);
pstrcpy(short_desc,crap);
return(short_desc);
}
@ -276,7 +276,7 @@ void scan_copyfiles(FILE *fichier, char *chaine)
char *part;
char *mpart;
int i;
char direc[255];
pstring direc;
#ifdef DEBUGIT
fprintf(stderr,"In scan_copyfiles Lookup up of %s\n",chaine);
#endif
@ -290,19 +290,19 @@ void scan_copyfiles(FILE *fichier, char *chaine)
*/
if (*part=='@') {
if (strlen(files_to_copy) != 0)
strcat(files_to_copy,",");
strcat(files_to_copy,&part[1]);
pstrcat(files_to_copy,",");
pstrcat(files_to_copy,&part[1]);
fprintf(stderr,"%s\n",&part[1]);
} else {
lookup_entry(fichier,part);
i=0;
strcpy(direc,"");
pstrcpy(direc,"");
while (*sub_dir[i][0]!='\0') {
#ifdef DEBUGIT
fprintf(stderr,"\tsubdir %s:%s\n",sub_dir[i][0],sub_dir[i][1]);
#endif
if (strcmp(sub_dir[i][0],part)==0)
strcpy(direc,sub_dir[i][1]);
pstrcpy(direc,sub_dir[i][1]);
i++;
}
i=0;
@ -331,7 +331,7 @@ void scan_copyfiles(FILE *fichier, char *chaine)
part = strchr(buffer[i],',');
if (part) {
if ((mpart = strrchr(part+1,','))!=NULL) {
strcpy(buffer[i],mpart+1);
pstrcpy(buffer[i],mpart+1);
} else
*part = '\0';
while (--part > buffer[i])
@ -340,9 +340,9 @@ void scan_copyfiles(FILE *fichier, char *chaine)
}
}
if (strlen(files_to_copy) != 0)
strcat(files_to_copy,",");
strcat(files_to_copy,direc);
strcat(files_to_copy,buffer[i]);
pstrcat(files_to_copy,",");
pstrcat(files_to_copy,direc);
pstrcat(files_to_copy,buffer[i]);
fprintf(stderr,"%s%s\n",direc,buffer[i]);
i++;
}
@ -364,8 +364,8 @@ void scan_short_desc(FILE *fichier, char *short_desc)
helpfile=0;
languagemonitor=0;
datatype="RAW";
chaine=(char *)malloc(255*sizeof(char));
temp=(char *)malloc(255*sizeof(char));
chaine=(char *)malloc(sizeof(pstring));
temp=(char *)malloc(sizeof(pstring));
driverfile=short_desc;
datafile=short_desc;
@ -422,7 +422,7 @@ void scan_short_desc(FILE *fichier, char *short_desc)
if (languagemonitor) {
temp = strtok(languagemonitor,",");
if (*temp == '"') ++temp;
strcpy(languagemonitor,temp);
pstrcpy(languagemonitor,temp);
if ((temp = strchr(languagemonitor,'"'))!=NULL) *temp = '\0';
}

View File

@ -64,7 +64,7 @@ void read_line( char **buf, char *line_buf, int size)
int clean_data( char **buf, uint32 *size)
{
char linebuf[512];
pstring linebuf;
char *p = *buf;
int num_lines = 0;
char *newbuf = (char *)malloc( *size + 1);
@ -94,7 +94,7 @@ int clean_data( char **buf, uint32 *size)
if(*cp == '\0')
continue;
strcpy(newbuf_p, cp);
pstrcpy(newbuf_p, cp);
num_lines++;
newbuf_p += (strlen(newbuf_p) + 1);
}

View File

@ -196,7 +196,7 @@ int main(int argc,char *argv[])
if(lookup_by_ip)
{
strcpy(lookup,"*");
fstrcpy(lookup,"*");
ip = *interpret_addr2(argv[i]);
printf("Looking up status of %s\n",inet_ntoa(ip));
name_status(ServerFD,lookup,lookup_type,True,ip,NULL,NULL,NULL);
@ -206,7 +206,7 @@ int main(int argc,char *argv[])
if (find_master) {
if (*lookup == '-') {
strcpy(lookup,"\01\02__MSBROWSE__\02");
fstrcpy(lookup,"\01\02__MSBROWSE__\02");
lookup_type = 1;
} else {
lookup_type = 0x1d;

View File

@ -345,7 +345,7 @@ int main(int argc, char **argv)
if(is_root) {
disable_user = True;
got_new_pass = True;
strcpy(new_passwd, "XXXXXX");
fstrcpy(new_passwd, "XXXXXX");
} else
usage(prog_name, is_root);
break;
@ -356,7 +356,7 @@ int main(int argc, char **argv)
if(is_root) {
set_no_password = True;
got_new_pass = True;
strcpy(new_passwd, "NO PASSWORD");
fstrcpy(new_passwd, "NO PASSWORD");
} else
usage(prog_name, is_root);
case 'r':

View File

@ -139,7 +139,7 @@ static void print_share_mode(share_mode_entry *e, char *fname)
processes_only = 1;
break;
case 's':
strcpy(servicesf, optarg);
pstrcpy(servicesf, optarg);
break;
case 'u': /* added by OH */
Ucrit_addUsername(optarg); /* added by OH */
@ -162,10 +162,10 @@ static void print_share_mode(share_mode_entry *e, char *fname)
printf("lockdir = %s\n", *lp_lockdir() ? lp_lockdir() : "NULL");
}
strcpy(fname,lp_lockdir());
pstrcpy(fname,lp_lockdir());
standard_sub_basic(fname);
trim_string(fname,"","/");
strcat(fname,"/STATUS..LCK");
pstrcat(fname,"/STATUS..LCK");
f = fopen(fname,"r");
if (!f) {
@ -281,7 +281,7 @@ static void print_share_mode(share_mode_entry *e, char *fname)
/* added by OH */
void Ucrit_addUsername(pstring username)
{
strcpy(Ucrit_username, username);
pstrcpy(Ucrit_username, username);
if(strlen(Ucrit_username) > 0)
Ucrit_IsActive = 1;
}

View File

@ -52,9 +52,9 @@ extern pstring myhostname;
charset_initialise();
if (argc < 2)
strcpy(configfile,CONFIGFILE);
pstrcpy(configfile,CONFIGFILE);
else
strcpy(configfile,argv[1]);
pstrcpy(configfile,argv[1]);
dbf = stdout;
DEBUGLEVEL = 2;

View File

@ -134,7 +134,7 @@ static BOOL rw_torture(struct cli_state *c, int numops)
if (i % 10 == 0) {
printf("%d\r", i); fflush(stdout);
}
sprintf(fname,"\\torture.%u", n);
slprintf(fname, sizeof(fstring) - 1, "\\torture.%u", n);
if (!wait_lock(c, fnum2, n*sizeof(int), sizeof(int))) {
return False;
@ -860,7 +860,7 @@ static void create_procs(int nprocs, int numops)
get_myname(myname,NULL);
if (*username == 0 && getenv("LOGNAME")) {
strcpy(username,getenv("LOGNAME"));
pstrcpy(username,getenv("LOGNAME"));
}
argc--;
@ -888,11 +888,11 @@ static void create_procs(int nprocs, int numops)
fstrcpy(myname, optarg);
break;
case 'U':
strcpy(username,optarg);
pstrcpy(username,optarg);
p = strchr(username,'%');
if (p) {
*p = 0;
strcpy(password, p+1);
pstrcpy(password, p+1);
gotpass = 1;
}
break;
@ -906,7 +906,7 @@ static void create_procs(int nprocs, int numops)
while (!gotpass) {
p = getpass("Password:");
if (p) {
strcpy(password, p);
pstrcpy(password, p);
gotpass = 1;
}
}

View File

@ -296,17 +296,17 @@ char *quotedup(char *s)
for (i=0;i<len;i++) {
switch (s[i]) {
case '<':
strcpy(d, "&lt;");
safe_strcpy(d, "&lt;", len + n*6 - (d - ret));
d += 4;
break;
case '>':
strcpy(d, "&gt;");
safe_strcpy(d, "&gt;", len + n*6 - (d - ret));
d += 4;
break;
case '&':
strcpy(d, "&amp;");
safe_strcpy(d, "&amp;", len + n*6 - (d - ret));
d += 5;
break;
@ -347,7 +347,7 @@ char *urlquote(char *s)
for (i=0;i<len;i++) {
if (strchr(qlist,s[i])) {
sprintf(d, "%%%02X", (int)s[i]);
slprintf(d, len + n*2 - (d - ret), "%%%02X", (int)s[i]);
d += 3;
} else {
*d++ = s[i];
@ -387,7 +387,7 @@ char *quotequotes(char *s)
for (i=0;i<len;i++) {
switch (s[i]) {
case '"':
strcpy(d, "&quot;");
safe_strcpy(d, "&quot;", len + n*6 - (d - ret));
d += 6;
break;

View File

@ -37,7 +37,7 @@ void start_smbd(void)
return;
}
sprintf(binfile,"%s/smbd", SBINDIR);
slprintf(binfile, sizeof(pstring) - 1, "%s/smbd", SBINDIR);
become_daemon();
@ -58,7 +58,7 @@ void start_nmbd(void)
return;
}
sprintf(binfile,"%s/nmbd", SBINDIR);
slprintf(binfile, sizeof(pstring) - 1, "%s/nmbd", SBINDIR);
become_daemon();

View File

@ -121,7 +121,7 @@ void status_page(void)
pstrcpy(fname,lp_lockdir());
standard_sub_basic(fname);
trim_string(fname,"","/");
strcat(fname,"/STATUS..LCK");
pstrcat(fname,"/STATUS..LCK");
f = fopen(fname,"r");
@ -131,7 +131,7 @@ void status_page(void)
if (crec.magic == 0x280267 && crec.cnum == -1 &&
process_exists(crec.pid)) {
char buf[30];
sprintf(buf,"kill_%d", crec.pid);
slprintf(buf,sizeof(buf)-1,"kill_%d", crec.pid);
if (cgi_variable(buf)) {
kill_pid(crec.pid);
}