typedef struct {
[value(strlen_m(name)*2)] uint16 length;
- [value(strlen_m(name)*2)] uint16 size;
+ /* size cannot be auto-set by value() as it is the
+ amount of space the server is allowed to use for this
+ string in the reply, not its current size */
+ uint16 size;
[size_is(size/2),length_is(length/2),charset(UTF16)] uint16 *name;
} winreg_StringBuf;
printf("Testing EnumKey\n\n");
class.name = "";
+ class.size = 1024;
r.in.handle = handle;
r.in.enum_index = 0;
do {
name.name = NULL;
+ name.size = 1024;
status = dcerpc_winreg_EnumKey(p, mem_ctx, &r);
printf("testing EnumValue\n");
name.name = "";
+ name.size = 1024;
r.in.handle = handle;
r.in.enum_index = 0;
const char *name, winreg_open_fn open_fn)
{
struct policy_handle handle, newhandle;
- BOOL ret = True, created = False, deleted = False;
+ BOOL ret = True, created = False, created2 = False, deleted = False;
struct winreg_OpenHKLM r;
NTSTATUS status;
ret = False;
}
- if (created && !test_CreateKey_sd(p, mem_ctx, &handle, TEST_KEY2,
+ if (created && test_CreateKey_sd(p, mem_ctx, &handle, TEST_KEY2,
NULL, &newhandle)) {
- printf("CreateKey failed - not considering a failure\n");
- created = False;
- } else {
- created = True;
+ created2 = True;
}
- if (created && !test_GetKeySecurity(p, mem_ctx, &newhandle)) {
+ if (created2 && !test_GetKeySecurity(p, mem_ctx, &newhandle)) {
printf("GetKeySecurity failed\n");
ret = False;
}
- if (created && !test_CloseKey(p, mem_ctx, &newhandle)) {
+ if (created2 && !test_CloseKey(p, mem_ctx, &newhandle)) {
printf("CloseKey failed\n");
ret = False;
}