diff options
-rw-r--r-- | source4/librpc/idl/epmapper.idl | 2 | ||||
-rw-r--r-- | source4/torture/rpc/epmapper.c | 23 |
2 files changed, 23 insertions, 2 deletions
diff --git a/source4/librpc/idl/epmapper.idl b/source4/librpc/idl/epmapper.idl index e18c24a3cd..e32b01a874 100644 --- a/source4/librpc/idl/epmapper.idl +++ b/source4/librpc/idl/epmapper.idl @@ -297,7 +297,7 @@ interface epmapper /**********************/ /* Function 0x05 */ error_status_t epm_InqObject( - [out] GUID *epm_object + [in,ref] GUID *epm_object ); diff --git a/source4/torture/rpc/epmapper.c b/source4/torture/rpc/epmapper.c index c3a847684f..68a6f6ba62 100644 --- a/source4/torture/rpc/epmapper.c +++ b/source4/torture/rpc/epmapper.c @@ -263,6 +263,23 @@ static BOOL test_Lookup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) return True; } +static BOOL test_InqObject(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) +{ + NTSTATUS status; + struct epm_InqObject r; + + r.in.epm_object = talloc_p(mem_ctx, struct GUID); + GUID_from_string(DCERPC_EPMAPPER_UUID, r.in.epm_object); + + status = dcerpc_epm_InqObject(p, mem_ctx, &r); + if (NT_STATUS_IS_ERR(status)) { + printf("InqObject failed - %s\n", nt_errstr(status)); + return False; + } + + return True; +} + BOOL torture_rpc_epmapper(void) { NTSTATUS status; @@ -284,9 +301,13 @@ BOOL torture_rpc_epmapper(void) ret = False; } + if (!test_InqObject(p, mem_ctx)) { + ret = False; + } + talloc_destroy(mem_ctx); - torture_rpc_close(p); + torture_rpc_close(p); return ret; } |