summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Wuerthner <ralph.wuerthner@de.ibm.com>2013-07-10 15:52:06 +0200
committerKarolin Seeger <kseeger@samba.org>2013-09-06 10:49:49 +0200
commit84eabf7b012fba624e900f2cc0294f2f1c598a46 (patch)
tree8cdabe9c7b4f16ae660cfcb613c63c1082060f50
parenta410c51fca3644ebf7a32512dc1075a23bfc8d38 (diff)
downloadsamba-84eabf7b012fba624e900f2cc0294f2f1c598a46.tar.gz
s3:smbd: allow info class SMB_QUERY_FS_VOLUME_INFO to return partial data
Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Volker Lendecke <Volker.Lendecke@SerNet.DE> (cherry picked from commit ec46f6b91941e38dd92f8e0fb0f278592e3157b6)
-rw-r--r--source3/smbd/trans2.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 20d42f7ea25..575f96e816d 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -3144,6 +3144,13 @@ 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(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: