Wireshark-bugs: [Wireshark-bugs] [Bug 3493] packet-dcm, corrupt DICOM export files

Date: Wed, 3 Jun 2009 12:47:26 -0700 (PDT)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3493





--- Comment #3 from David <david_aggeler@xxxxxxxxxx>  2009-06-03 12:47:24 PDT ---
I tend to agree, that there's a session leak in the export. But strangely,
closing the capture, frees it all. I didn't and still don't use any se_alloc()
(that is only called during the export). But the reparsing of the same capture 
maybe an issue.

As far as the DICOM export goes:

I had to replace ep_alloc0() with g_malloc() due to the artificial limit at 2.5
MB. But the new code is at least equal quality in respect to the memory
handling. eo_win_destroy_cb() in export_object.c is looping through the created
list and frees its members, then the structure itself.

So this part is symmetric in my opinion.

When preparing the export, individual PDVs that have a 'more' flag are
temporarily stored, and at the last fragment dcm_export_create_object() is
merging them and freeing the partial pdvs.

For me, memory debugging the tap is difficult, since there is a timing issue
when creating the list of exported objects.

So, I would really appreciate this code to be checked in. The leak is not worse
than before. But not fixing, would mean corrupt files on export (extra two
bytes once in a while). And large PDVs won't export. I spent a lot of hours
making the export feature happen, and it is 99% there.

As soon as I get some more spare time, I'll try to look into, where the memory
is lost. I'll also compare it to the HTML export. Any hints of course are
appreciated.


-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.