s3:smbd: allow info class SMB_QUERY_FS_VOLUME_INFO to return partial data
authorRalph Wuerthner <ralph.wuerthner@de.ibm.com>
Wed, 10 Jul 2013 13:52:06 +0000 (15:52 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 5 Aug 2013 23:46:06 +0000 (16:46 -0700)
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <Volker.Lendecke@SerNet.DE>
source3/smbd/trans2.c

index 76176620800e2fcd06840e7f4ba87a1c77c7740d..3bd5656cd198ccfb2a7b33430d6aacee7364d70a 100644 (file)
@@ -3297,6 +3297,12 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)st.st_ex_dev, (u
                        DEBUG(5,("smbd_do_qfsinfo : SMB_QUERY_FS_VOLUME_INFO namelen = %d, vol=%s serv=%s\n",
                                (int)strlen(vname),vname,
                                lp_servicename(talloc_tos(), snum)));
+                       if (max_data_bytes >= 24 && data_len > max_data_bytes) {
+                               /* the client only requested a portion of the
+                                  volume label */
+                               data_len = max_data_bytes;
+                               status = STATUS_BUFFER_OVERFLOW;
+                       }
                        break;
 
                case SMB_QUERY_FS_SIZE_INFO: