summaryrefslogtreecommitdiff
path: root/source3/smbd/reply.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-07-14 21:23:59 +0000
committerJeremy Allison <jra@samba.org>1998-07-14 21:23:59 +0000
commit59d07445b61e26321e3a1770c13756ac5948aabb (patch)
tree86286c7a304d26109ece60f7c3a5af5374a7757e /source3/smbd/reply.c
parenta5ddf0881e2410b7d4d8f1a389785e4db28d989e (diff)
downloadsamba-59d07445b61e26321e3a1770c13756ac5948aabb.tar.gz
samba-59d07445b61e26321e3a1770c13756ac5948aabb.tar.bz2
samba-59d07445b61e26321e3a1770c13756ac5948aabb.zip
loadparm.c:
With apologies to Charlton Heston and Pierre Boule. "You damn fools, you finally did it". Changed default security mode to be security=user. Yes this is a big (although small in code) change. It's something we've been discussing for a while, to finally wean people off the legacy security=share mode which is *never* what you want. Jeremy. nmbd_incomingrequests.c: Bug fix for nmbd core dumps caused by overrun. Found by <samuel@public.szonline.net>. nttrans.c: More NT smb stuff. reply.c: Unlink will overwrite an existing file. Well you learn something new about POSIX every day. :-). server.c: Tidyup unreadable code. smbpasswd.c: Code to allow -U remote_username to allow ordinary users to change remote passwords if their NT username is different from their UNIX username. Patch from <torbjorn.lindh@allgon.se>. Jeremy. (This used to be commit 4eccb47cfb3c8907a6558b6ea9a02b0184458e34)
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r--source3/smbd/reply.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index cb659e3ef9..07b72738c5 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -3258,21 +3258,21 @@ int rename_internals(char *inbuf, char *outbuf, char *name, char *newname, BOOL
if(replace_if_exists) {
/*
- * NT SMB specific flag - we must remove a target
- * file with the same name before continuing.
+ * NT SMB specific flag - rename can overwrite
+ * file with the same name so don't check for
+ * file_exist().
*/
if(resolve_wildcards(directory,newname) &&
can_rename(directory,cnum) &&
- file_exist(newname,NULL)) {
- sys_unlink(newname);
- }
- }
-
- if (resolve_wildcards(directory,newname) &&
- can_rename(directory,cnum) &&
- !file_exist(newname,NULL) &&
!sys_rename(directory,newname))
- count++;
+ count++;
+ } else {
+ if (resolve_wildcards(directory,newname) &&
+ can_rename(directory,cnum) &&
+ !file_exist(newname,NULL) &&
+ !sys_rename(directory,newname))
+ count++;
+ }
DEBUG(3,("rename_internals: %s doing rename on %s -> %s\n",(count != 0) ? "succeeded" : "failed",
directory,newname));
@@ -3319,9 +3319,7 @@ int rename_internals(char *inbuf, char *outbuf, char *name, char *newname, BOOL
continue;
}
- if (replace_if_exists && file_exist(destname,NULL)) {
- sys_unlink(destname);
- } else if(file_exist(destname,NULL)) {
+ if (!replace_if_exists && file_exist(destname,NULL)) {
DEBUG(6,("file_exist %s\n", destname));
error = 183;
continue;