diff options
author | Gerald Carter <jerry@samba.org> | 2003-04-11 23:48:24 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-04-11 23:48:24 +0000 |
commit | e1ea87ff03f7029f309a119e6be726a11000ab34 (patch) | |
tree | ffe7b852b8968ccfe3b6bcae4a4cc5f3dd530b8e /source3/smbd/reply.c | |
parent | 14e03aed2970d75cba216741d74363fc353955d2 (diff) | |
download | samba-e1ea87ff03f7029f309a119e6be726a11000ab34.tar.gz samba-e1ea87ff03f7029f309a119e6be726a11000ab34.tar.bz2 samba-e1ea87ff03f7029f309a119e6be726a11000ab34.zip |
* We must return 0x2 as the majorversion for nt4 to upload drivers
* fix bug found by clobber_region()
(This used to be commit b2e29c7bd45f8f33d9ed58fe75bbf5ffc78350f5)
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r-- | source3/smbd/reply.c | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index c4147f78b1..0ccb4d0e9d 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -3045,20 +3045,22 @@ int reply_rmdir(connection_struct *conn, char *inbuf,char *outbuf, int dum_size, Resolve wildcards in a filename rename. ********************************************************************/ -static BOOL resolve_wildcards(char *name1,char *name2) +static BOOL resolve_wildcards(const char *name1, char *name2) { fstring root1,root2; fstring ext1,ext2; - char *p,*p2; + char *p,*p2, *pname1, *pname2; + int available_space; + - name1 = strrchr_m(name1,'/'); - name2 = strrchr_m(name2,'/'); + pname1 = strrchr_m(name1,'/'); + pname2 = strrchr_m(name2,'/'); - if (!name1 || !name2) + if (!pname1 || !pname2) return(False); - fstrcpy(root1,name1); - fstrcpy(root2,name2); + fstrcpy(root1,pname1); + fstrcpy(root2,pname2); p = strrchr_m(root1,'.'); if (p) { *p = 0; @@ -3100,10 +3102,13 @@ static BOOL resolve_wildcards(char *name1,char *name2) p++; } - pstrcpy(name2,root2); + available_space = sizeof(pstring) - PTR_DIFF(pname2, name2); + + StrnCpy(pname2, root2, available_space-1); + available_space -= strlen(root2); if (ext2[0]) { - pstrcat(name2,"."); - pstrcat(name2,ext2); + strncat(pname2, ".", available_space-1); + strncat(pname2, ext2, available_space-2); } return(True); |