s3-winreg: fix _winreg_EnumValue behavior
authorGünther Deschner <gd@samba.org>
Wed, 15 Nov 2023 16:13:20 +0000 (17:13 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 20 Nov 2023 03:52:33 +0000 (03:52 +0000)
When returning WERR_MORE_DATA the winreg server needs to indicate the
required buffer size.

Guenther

Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
selftest/knownfail.d/winreg
source3/rpc_server/winreg/srv_winreg_nt.c

index b1c55dea2f84aee6781ab0ea0041601cbf541a71..4d88d8a725aa8e538ef4bd7f9895da7cd74ff052 100644 (file)
@@ -1,5 +1 @@
-^samba3.rpc.winreg.winreg.HKLM\(nt4_dc\)
-^samba3.rpc.winreg.winreg.HKCR\(nt4_dc\)
-^samba3.rpc.winreg.winreg.HKCU\(nt4_dc\)
-^samba3.rpc.winreg.winreg.HKU\(nt4_dc\)
 ^samba4.rpc.winreg.*
index 67e81422e4cc0354673eaf5c67a9a3269c20348e..132213a6e863da5e054cac003978e282824376f2 100644 (file)
@@ -502,6 +502,7 @@ WERROR _winreg_EnumValue(struct pipes_struct *p,
                }
 
                if (val->data.length > *r->out.size) {
+                       *r->out.size = val->data.length;
                        return WERR_MORE_DATA;
                }