r11718: Filter stored DOS attributes by SAMBA_ATTRIBUTES_MASK (0x7f).
authorJeremy Allison <jra@samba.org>
Mon, 14 Nov 2005 06:29:48 +0000 (06:29 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:05:25 +0000 (11:05 -0500)
Jeremy.
(This used to be commit 61444049e1543b364eea2ee79743287c75d37db5)

source3/smbd/dosmode.c

index fec148b8e637df51872b517cd0ead29c375077dd..814d008cbbeee053ab3b9a3ba2dad86fa5cc9340 100644 (file)
@@ -337,6 +337,7 @@ uint32 dos_mode(connection_struct *conn, const char *path,SMB_STRUCT_STAT *sbuf)
        if (result & aSYSTEM) DEBUG(8, ("s"));
        if (result & aDIR   ) DEBUG(8, ("d"));
        if (result & aARCH  ) DEBUG(8, ("a"));
+       if (result & FILE_ATTRIBUTE_SPARSE ) DEBUG(8, ("[sparse]"));
        
        DEBUG(8,("\n"));
 
@@ -355,6 +356,9 @@ int file_set_dosmode(connection_struct *conn, const char *fname, uint32 dosmode,
        mode_t unixmode;
        int ret = -1;
 
+       /* We only allow READONLY|HIDDEN|SYSTEM|DIRECTORY|ARCHIVE here. */
+       dosmode &= SAMBA_ATTRIBUTES_MASK;
+
        DEBUG(10,("file_set_dosmode: setting dos mode 0x%x on file %s\n", dosmode, fname));
        if (!st || (st && !VALID_STAT(*st))) {
                st = &st1;