From 3a7e251f277c9eb203b470ec6635a3ad2fc028f0 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 4 Oct 2005 01:43:24 +0000 Subject: r10705: fixed a crash bug in the getdcname irpc server for winbind. The problem was that the return string was declared as: [out] astring dcname which means "this is a non-NULL string". The server code sometimes returned NULL however (on getdc lookup failure), which caused the NDR marshalling code to crash. When you declare a non-pointer return value you are promising that the value can never be NULL. The trivial fix is to use: [out] astring *dcname which leaves the API alone, but includes a pointer in the wire format, which in turn means it is valid to send a NULL string as a response. (This used to be commit e39bac61960f6ce8957f148a482e39499a8e9096) --- source4/librpc/idl/irpc.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source4/librpc/idl') diff --git a/source4/librpc/idl/irpc.idl b/source4/librpc/idl/irpc.idl index 1c4b8d2c53..34998d57a7 100644 --- a/source4/librpc/idl/irpc.idl +++ b/source4/librpc/idl/irpc.idl @@ -59,7 +59,7 @@ [in] astring my_accountname, [in] uint32 account_control, [in,ref] dom_sid *domain_sid, - [out] astring dcname + [out] astring *dcname ); /****************************************************** -- cgit