pidl: allow foo being on the wire after [length_is(foo)] uint8 *buffer
authorStefan Metzmacher <metze@samba.org>
Mon, 27 Jul 2009 15:34:37 +0000 (17:34 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 27 Jul 2009 15:51:32 +0000 (17:51 +0200)
metze

pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm

index d93661c491e6b225cccb08a8a4b05bf9c8805718..3e724c986da89fc47cd121c7519e3e6c60cde80e 100644 (file)
@@ -1065,6 +1065,10 @@ sub ParseElementPullLevel
                my $counter = "cntr_$e->{NAME}_$l->{LEVEL_INDEX}";
                my $array_name = $var_name;
 
+               if ($l->{IS_VARYING}) {
+                       $length = "ndr_get_array_length($ndr, " . get_pointer_to($var_name) .")";
+               }
+
                $var_name = get_array_element($var_name, $counter);
 
                $self->ParseMemCtxPullStart($e, $l, $ndr, $array_name);