From 83a24ff2efd48b0e192024798695f6cfec9000b5 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Thu, 16 Sep 2010 16:57:21 +1000 Subject: pidl: prevent ndr_print_*() dying on NULL pointers when using ndrdump you can get uninitialised structures containing pointers. Don't segfault when trying to print them --- pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'pidl/lib/Parse/Pidl') diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm index 83bca288ed..b389cfbc13 100644 --- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm @@ -1466,6 +1466,7 @@ sub ParseStructPrint($$$$$) $self->DeclareArrayVariables($_) foreach (@{$struct->{ELEMENTS}}); $self->pidl("ndr_print_struct($ndr, name, \"$name\");"); + $self->pidl("if (r == NULL) { ndr_print_null($ndr); return; }"); $self->start_flags($struct, $ndr); @@ -2039,6 +2040,7 @@ sub ParseFunctionPrint($$) } $self->pidl("ndr_print_struct($ndr, name, \"$fn->{NAME}\");"); + $self->pidl("if (r == NULL) { ndr_print_null($ndr); return; }"); $self->pidl("$ndr->depth++;"); $self->pidl("if (flags & NDR_SET_VALUES) {"); -- cgit