summaryrefslogtreecommitdiffstats
path: root/source/smbd/dosmode.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/smbd/dosmode.c')
-rw-r--r--source/smbd/dosmode.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/smbd/dosmode.c b/source/smbd/dosmode.c
index d7b40198771..ee54417c247 100644
--- a/source/smbd/dosmode.c
+++ b/source/smbd/dosmode.c
@@ -196,6 +196,8 @@ int file_chmod(connection_struct *conn,char *fname,int dosmode,SMB_STRUCT_STAT *
if (S_ISDIR(st->st_mode))
dosmode |= aDIR;
+ else
+ dosmode &= ~aDIR;
if (dos_mode(conn,fname,st) == dosmode)
return(0);
@@ -280,7 +282,7 @@ int file_utime(connection_struct *conn, char *fname, struct utimbuf *times)
errno = 0;
- if(conn->vfs_ops.utime(conn,dos_to_unix(fname, False), times) == 0)
+ if(conn->vfs_ops.utime(conn,dos_to_unix_static(fname), times) == 0)
return 0;
if((errno != EPERM) && (errno != EACCES))
@@ -308,7 +310,7 @@ int file_utime(connection_struct *conn, char *fname, struct utimbuf *times)
current_user.ngroups,current_user.groups)))) {
/* We are allowed to become root and change the filetime. */
become_root();
- ret = conn->vfs_ops.utime(conn,dos_to_unix(fname, False), times);
+ ret = conn->vfs_ops.utime(conn,dos_to_unix_static(fname), times);
unbecome_root();
}
}