diff options
author | Jeremy Allison <jra@samba.org> | 2003-08-14 23:15:02 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2003-08-14 23:15:02 +0000 |
commit | 1699fadcdb86462c0b36f0479317dc52ae8a263a (patch) | |
tree | c247bbc4ce508cde4171bbad96402b429aae851a /source3/smbd/reply.c | |
parent | b679661d275e7e5ebafb665654cb39a2003b67bc (diff) | |
download | samba-1699fadcdb86462c0b36f0479317dc52ae8a263a.tar.gz samba-1699fadcdb86462c0b36f0479317dc52ae8a263a.tar.xz samba-1699fadcdb86462c0b36f0479317dc52ae8a263a.zip |
Fix changing of attributes via setattr. Samba4 test fixes.
Jeremy.
(This used to be commit 97e1d5c9573513c9c9be9a709341bda54fbe44be)
Diffstat (limited to 'source3/smbd/reply.c')
-rw-r--r-- | source3/smbd/reply.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index 8df118ab16..35d07d5bf7 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -544,13 +544,18 @@ int reply_setatr(connection_struct *conn, char *inbuf,char *outbuf, int dum_size mode = SVAL(inbuf,smb_vwv0); mtime = make_unix_date3(inbuf+smb_vwv1); - if (VALID_STAT_OF_DIR(sbuf)) - mode |= aDIR; - else - mode &= ~aDIR; + if (mode != FILE_ATTRIBUTE_NORMAL) { + if (VALID_STAT_OF_DIR(sbuf)) + mode |= aDIR; + else + mode &= ~aDIR; + + if (check_name(fname,conn)) + ok = (file_chmod(conn,fname,mode,NULL) == 0); + } else { + ok = True; + } - if (check_name(fname,conn)) - ok = (file_chmod(conn,fname,mode,NULL) == 0); if (ok) ok = set_filetime(conn,fname,mtime); |