Huge thanks to our Platinum Members Endace and LiveAction,
and our Silver Member Veeam, for supporting the Wireshark Foundation and project.

Wireshark-dev: Re: [Wireshark-dev] g_free throwing an exception

From: Paul Offord <Paul.Offord@xxxxxxxxxxxx>
Date: Mon, 6 Nov 2017 11:30:33 +0000

No, Pascal is quite right.  In my dissector I pointed the hf fields to some fixed values in an array.  Added some g_strdup functions and, voila, it all works.

 

Thanks both.

 

Best regards…Paul

 

From: Wireshark-dev [mailto:wireshark-dev-bounces@xxxxxxxxxxxxx] On Behalf Of Graham Bloice
Sent: 06 November 2017 10:50
To: Developer support list for Wireshark <wireshark-dev@xxxxxxxxxxxxx>
Subject: Re: [Wireshark-dev] g_free throwing an exception

 

 

 

On 5 November 2017 at 21:33, Pascal Quantin <pascal.quantin@xxxxxxxxx> wrote:

Hi Paul,

 

2017-11-05 12:15 GMT+01:00 Paul Offord <Paul.Offord@xxxxxxxxxxxx>:

Hi,

 

I am working on a plugin dissector.  It works OK except when I change profiles Wireshark throws an exception in code in proto.c as follows:

 

static void

free_deregistered_field (gpointer data, gpointer user_data _U_)

{

               header_field_info *hfi = (header_field_info *) data;

               gint hf_id = hfi->id;

 

               g_free((char *)hfi->name);      <== The exception occurs on execution of this call

 

The hfi structure looks valid and the hfi->name does point to a character string.

 

The only thing I can see that might be wrong is that hfi->name has a data type of const char *

 

How can I determine the cause of the exception?

 

Usually this is a sign of an attempt to free a memory block that was not allocated with g_malloc. Is it a field from your plugin?

 

BR,

Pascal.

 



This might also be a case of mixed MSVCRT libraries.  If compiling with VS2013 are you using VS2013 third party libraries?

 

--

Graham Bloice


______________________________________________________________________

This message contains confidential information and is intended only for the individual named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system.

Any views or opinions expressed are solely those of the author and do not necessarily represent those of Advance Seven Ltd. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission.

Advance Seven Ltd. Registered in England & Wales numbered 2373877 at Endeavour House, Coopers End Lane, Stansted, Essex CM24 1SJ

______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________