r21952: Fix critical (!) error found by IBM checker.
authorJeremy Allison <jra@samba.org>
Fri, 23 Mar 2007 21:11:08 +0000 (21:11 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:18:51 +0000 (12:18 -0500)
Missing break statements meant that no info
levels would ever be returned correctly from
POSIX open/mkdir.
Jeremy.
(This used to be commit ae5761ccc66b35b66ca4fa90aef02d8be1564737)

source3/smbd/trans2.c

index 14dfbe0bbfc3e035514201c34718ade7a6366e34..007ad50b10f947d2344855e59c74e420f05024dc 100644 (file)
@@ -5329,17 +5329,20 @@ static NTSTATUS smb_posix_mkdir(connection_struct *conn,
        SIVAL(pdata,4,info); /* Was directory created. */
 
        switch (info_level_return) {
-       case SMB_QUERY_FILE_UNIX_BASIC:
-               SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_BASIC);
-               SSVAL(pdata,10,0); /* Padding. */
-               store_file_unix_basic(conn, pdata + 12, fsp, psbuf);
-       case SMB_QUERY_FILE_UNIX_INFO2:
-               SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_INFO2);
-               SSVAL(pdata,10,0); /* Padding. */
-               store_file_unix_basic_info2(conn, pdata + 12, fsp, psbuf);
-       default:
-               SSVAL(pdata,8,SMB_NO_INFO_LEVEL_RETURNED);
-               SSVAL(pdata,10,0); /* Padding. */
+               case SMB_QUERY_FILE_UNIX_BASIC:
+                       SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_BASIC);
+                       SSVAL(pdata,10,0); /* Padding. */
+                       store_file_unix_basic(conn, pdata + 12, fsp, psbuf);
+                       break;
+               case SMB_QUERY_FILE_UNIX_INFO2:
+                       SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_INFO2);
+                       SSVAL(pdata,10,0); /* Padding. */
+                       store_file_unix_basic_info2(conn, pdata + 12, fsp, psbuf);
+                       break;
+               default:
+                       SSVAL(pdata,8,SMB_NO_INFO_LEVEL_RETURNED);
+                       SSVAL(pdata,10,0); /* Padding. */
+                       break;
        }
 
        return status;
@@ -5513,17 +5516,20 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
        SIVAL(pdata,4,info); /* Was file created etc. */
 
        switch (info_level_return) {
-       case SMB_QUERY_FILE_UNIX_BASIC:
-               SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_BASIC);
-               SSVAL(pdata,10,0); /* padding. */
-               store_file_unix_basic(conn, pdata + 12, fsp, psbuf);
-       case SMB_QUERY_FILE_UNIX_INFO2:
-               SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_INFO2);
-               SSVAL(pdata,10,0); /* padding. */
-               store_file_unix_basic_info2(conn, pdata + 12, fsp, psbuf);
-       default:
-               SSVAL(pdata,8,SMB_NO_INFO_LEVEL_RETURNED);
-               SSVAL(pdata,10,0); /* padding. */
+               case SMB_QUERY_FILE_UNIX_BASIC:
+                       SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_BASIC);
+                       SSVAL(pdata,10,0); /* padding. */
+                       store_file_unix_basic(conn, pdata + 12, fsp, psbuf);
+                       break;
+               case SMB_QUERY_FILE_UNIX_INFO2:
+                       SSVAL(pdata,8,SMB_QUERY_FILE_UNIX_INFO2);
+                       SSVAL(pdata,10,0); /* padding. */
+                       store_file_unix_basic_info2(conn, pdata + 12, fsp, psbuf);
+                       break;
+               default:
+                       SSVAL(pdata,8,SMB_NO_INFO_LEVEL_RETURNED);
+                       SSVAL(pdata,10,0); /* padding. */
+                       break;
        }
        return NT_STATUS_OK;
 }