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)
committerKarolin Seeger <kseeger@samba.org>
Fri, 6 Sep 2013 08:48:38 +0000 (10:48 +0200)
Reviewed-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <Volker.Lendecke@SerNet.DE>
(cherry picked from commit ec46f6b91941e38dd92f8e0fb0f278592e3157b6)

source3/smbd/trans2.c

index 4dd40ad26c920e3134c08e8b2ba865ea64ea0fb6..2d4b15d566331b66b62b62c5b93c8c36e098d7b5 100644 (file)
@@ -3232,6 +3232,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: