diff options
author | Günther Deschner <gd@samba.org> | 2020-03-04 15:23:43 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2020-03-09 15:00:31 +0000 |
commit | ebda529b59105e9b70cc74377fe4d54cc16b4f37 (patch) | |
tree | adade9b31287da825517abeca5a95bbb1290f7c8 /librpc/idl | |
parent | c3fa0b2df9fc53dddcc3160b6a3dc751bbb389a4 (diff) | |
download | samba-ebda529b59105e9b70cc74377fe4d54cc16b4f37.tar.gz |
librpc: fix IDL for svcctl_ChangeServiceConfigW
Found while trying to run winexe against Windows Server 2019.
BUG: https://bugzilla.samba.org/show_bug.cgi?id=14313
Guenther
Signed-off-by: Guenther Deschner <gd@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
Diffstat (limited to 'librpc/idl')
-rw-r--r-- | librpc/idl/svcctl.idl | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/librpc/idl/svcctl.idl b/librpc/idl/svcctl.idl index e909bf2dbed..a9dd3dec990 100644 --- a/librpc/idl/svcctl.idl +++ b/librpc/idl/svcctl.idl @@ -13,6 +13,17 @@ import "misc.idl", "security.idl"; helpstring("Service Control") ] interface svcctl { + const int MAX_SERVICE_NAME_LENGTH = 256; + const short SC_MAX_DEPEND_SIZE = 4 * 1024; + const short SC_MAX_NAME_LENGTH = MAX_SERVICE_NAME_LENGTH + 1; + const short SC_MAX_PATH_LENGTH = 32 * 1024; + const short SC_MAX_PWD_SIZE = 514; + const short SC_MAX_COMPUTER_NAME_LENGTH = 1024; + const short SC_MAX_ACCOUNT_NAME_LENGTH = 2 * 1024; + const short SC_MAX_COMMENT_LENGTH = 128; + const short SC_MAX_ARGUMENT_LENGTH = 1024; + const short SC_MAX_ARGUMENTS = 1024; + typedef struct { uint32 is_locked; [string,charset(UTF16)] uint16 *lock_owner; @@ -195,11 +206,13 @@ import "misc.idl", "security.idl"; [in] svcctl_ErrorControl error_control, [in,unique] [string,charset(UTF16)] uint16 *binary_path, [in,unique] [string,charset(UTF16)] uint16 *load_order_group, - [out,ref] uint32 *tag_id, - [in,unique] [string,charset(UTF16)] uint16 *dependencies, - [in,unique] [string,charset(UTF16)] uint16 *service_start_name, - [in,unique] [string,charset(UTF16)] uint16 *password, - [in,unique] [string,charset(UTF16)] uint16 *display_name + [in,out,unique] uint32 *tag_id, + [in,unique,size_is(dwDependSize)] [string,charset(UTF16)] uint16 *dependencies, + [in,range(0, SC_MAX_DEPEND_SIZE)] uint32 dwDependSize, + [in,unique,range(0, SC_MAX_ACCOUNT_NAME_LENGTH)] [string,charset(UTF16)] uint16 *service_start_name, + [in,unique,size_is(dwPwSize)] [string,charset(UTF16)] uint16 *password, + [in,range(0, SC_MAX_PWD_SIZE)] uint32 dwPwSize, + [in,unique,range(0, SC_MAX_NAME_LENGTH)] [string,charset(UTF16)] uint16 *display_name ); /*****************/ |