summaryrefslogtreecommitdiff
path: root/source3/rpcclient
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2017-05-03 11:31:20 +0200
committerJeremy Allison <jra@samba.org>2017-05-07 03:28:21 +0200
commit202e2ab5e14fdd70b78dbbd48685e44f22b0d51d (patch)
tree46d03ca14fb02ede0f3d78adb10bbc1dc6c7e686 /source3/rpcclient
parenta50343779a8a92d6f53095b36506b1d47ef68513 (diff)
downloadsamba-202e2ab5e14fdd70b78dbbd48685e44f22b0d51d.tar.gz
s3-rpcclient: Fix enumdata spoolss display of REG_DWORD
One should not assume a REG_DWORD is always 4 byte long. In an enumdata(ex) context, the first reply will return with content in a buffer that can fill the largest entry in the array of attributes. All subsequent queries then reuse this buffer even if the key/value pair in question then is just a 4 byte DWORD. The remaining buffer will be just empty and of no interest. Signed-off-by: Guenther Deschner <gd@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Sun May 7 03:28:21 CEST 2017 on sn-devel-144
Diffstat (limited to 'source3/rpcclient')
-rw-r--r--source3/rpcclient/cmd_spoolss.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/rpcclient/cmd_spoolss.c b/source3/rpcclient/cmd_spoolss.c
index 00dc2e0e817..34cbb7e0cdb 100644
--- a/source3/rpcclient/cmd_spoolss.c
+++ b/source3/rpcclient/cmd_spoolss.c
@@ -770,7 +770,7 @@ static void display_reg_value(const char *name, enum winreg_Type type, DATA_BLOB
switch(type) {
case REG_DWORD:
- if (blob.length == sizeof(uint32_t)) {
+ if (blob.length >= sizeof(uint32_t)) {
printf("%s: REG_DWORD: 0x%08x\n", name, IVAL(blob.data,0));
} else {
printf("%s: REG_DWORD: <invalid>\n", name);