diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-09-14 12:25:41 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:18:42 -0500 |
commit | df08af841881d331285a56f76a826ebd19b426b8 (patch) | |
tree | ae8baa0e401e0a27728e1e01829b09c5d9870984 | |
parent | 5f68b76c4a02b2681e4533d010628a0dd6338768 (diff) | |
download | samba-df08af841881d331285a56f76a826ebd19b426b8.tar.gz samba-df08af841881d331285a56f76a826ebd19b426b8.tar.bz2 samba-df08af841881d331285a56f76a826ebd19b426b8.zip |
r18523: Allow [out] on arrays as well as pointers, use in unixinfo.
(This used to be commit f67b4d58acd2c3746e5ffeffa804e888ca3c49a5)
-rw-r--r-- | source4/librpc/idl/unixinfo.idl | 2 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/NDR.pm | 7 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm | 2 |
3 files changed, 6 insertions, 5 deletions
diff --git a/source4/librpc/idl/unixinfo.idl b/source4/librpc/idl/unixinfo.idl index 955e38d86b..086cfc7486 100644 --- a/source4/librpc/idl/unixinfo.idl +++ b/source4/librpc/idl/unixinfo.idl @@ -51,6 +51,6 @@ NTSTATUS unixinfo_GetPWUid ( [in,out,ref,range(0,1023)] uint32 *count, [in,size_is(*count)] hyper uids[], - [out,size_is(*count)] unixinfo_GetPWUidInfo *infos + [out,size_is(*count)] unixinfo_GetPWUidInfo infos[*] ); } diff --git a/source4/pidl/lib/Parse/Pidl/NDR.pm b/source4/pidl/lib/Parse/Pidl/NDR.pm index 21875a1297..f274836fe7 100644 --- a/source4/pidl/lib/Parse/Pidl/NDR.pm +++ b/source4/pidl/lib/Parse/Pidl/NDR.pm @@ -543,9 +543,10 @@ sub ParseFunction($$$) push (@{$e->{DIRECTION}}, "in") if (has_property($x, "in")); push (@{$e->{DIRECTION}}, "out") if (has_property($x, "out")); - nonfatal($x, "`$e->{NAME}' is [out] argument but not a pointer") - if ($e->{LEVELS}[0]->{TYPE} ne "POINTER") and - grep(/out/, @{$e->{DIRECTION}}); + nonfatal($x, "`$e->{NAME}' is [out] argument but not a pointer or array") + if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and + $e->{LEVELS}[0]->{TYPE} ne "ARRAY" and + grep(/out/, @{$e->{DIRECTION}})); push (@elements, $e); } diff --git a/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm b/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm index fa629e6101..31ea73f7aa 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba3/ClientNDR.pm @@ -61,7 +61,7 @@ sub ParseFunction($$) foreach my $e (@{$fn->{ELEMENTS}}) { next unless (grep(/out/, @{$e->{DIRECTION}})); - fatal($e, "[out] argument is not a pointer") if ($e->{LEVELS}[0]->{TYPE} ne "POINTER"); + fatal($e, "[out] argument is not a pointer or array") if ($e->{LEVELS}[0]->{TYPE} ne "POINTER" and $e->{LEVELS}[0]->{TYPE} ne "ARRAY"); pidl "*$e->{NAME} = *r.out.$e->{NAME};"; } |