From 256054f4e12ddd2d65734cda8a33ee24e50931e8 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Tue, 27 Mar 2007 23:22:41 +0000 Subject: r21996: Fix a bug for invalid casts of pointers. Patch by Ronnie Sahlberg. (This used to be commit 52a13ddf0242318785b05a8888640b2172435c45) --- source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source4/pidl/lib') diff --git a/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm b/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm index 279f4c0cf2..e6dd954b74 100644 --- a/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm +++ b/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm @@ -162,7 +162,14 @@ sub Enum($$$) pidl_code "$dissectorname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)"; pidl_code "{"; indent; - pidl_code "offset = dissect_ndr_$e->{BASE_TYPE}(tvb, offset, pinfo, tree, drep, hf_index, param);"; + pidl_code "g$e->{BASE_TYPE} parameter;"; + pidl_code "parameter=(g$e->{BASE_TYPE})*param;"; + pidl_code "offset = dissect_ndr_$e->{BASE_TYPE}(tvb, offset, pinfo, tree, drep, hf_index, ¶meter);"; + pidl_code "if(param){"; + indent; + pidl_code "*param=(guint32)parameter;"; + deindent; + pidl_code "}"; pidl_code "return offset;"; deindent; pidl_code "}\n"; -- cgit