wireshark-dev August 2010 archive
Main Archive Page > Month Archives  > wireshark-dev archives
wireshark-dev: Re: [Wireshark-dev] Memory leaks when using epan

Re: [Wireshark-dev] Memory leaks when using epan

From: Jeff Morriss <jeff.morriss.ws_at_nospam>
Date: Fri Aug 20 2010 - 18:53:01 GMT
To: Developer support list for Wireshark <wireshark-dev@wireshark.org>

Thierry Emmanuel wrote:
> Hello,
> As I wrote in some of my mails, I work on a project which made me to use
> the epan as a dissecting library, independently from the rest of the
> wireshark source.
> I have some troubles with memory handling. I have huge memory leaks when
> I decode multicast streams (because there are lots of packets to dissect
> of course :) ).
> This kind of use isn't common, nor documented, so I must have made some
> errors in my implementation or even in the structure of my wrappers.
> So I have some questions to the wireshark gurus :
> Do you see some reason, for example in my code, that could cause such
> memory leaks ?
> I have supposed that the whole memory used to build the proto_tree
> wasn't free'd when I called proto_tree_free, do you free its content by
> another way ?
> Is there a way to force dissectors and the rest of Wireshark code to
> release this memory ?

The valgrind output shows that Valgrind thinks the ep_ and se_ allocated
memory is being leaked. Sounds like you need to call ep_free_all()
(after each packet) and se_free_all() (when the file is closed).

Normally the former is done in epan_dissect_run() and the latter is done
in cleanup_dissection() (or init_dissection()). Not sure how that
relates to your code.
Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives: http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev