Wireshark-dev: Re: [Wireshark-dev] COPY_ADDRESS and g_malloc()
Date: Tue, 14 Nov 2006 09:47:16 +0100
      Hello,


If you modify the COPY_ADDRESS, could you have a look at this bug ?
http://bugs.wireshark.org/bugzilla/show_bug.cgi?id=1113

As the conversation structure has been se_allocated, it is not possible to
free the data "key->addr1.data", because the structure was released by
"se_free_all".
So the change of COPY_ADDRESS has probably some impacts, for dissectors
wanting to free the data itself.
Maybe, there is a lot of work behind this change ?
But anyway this is a good idea to remove the g_malloc() and to clarify the
use of COPY_ADDRESS.

Best regards
Florent

<<
conversation_init(void)
{
             conversation_key *key;

../..
             for (key = conversation_keys; key != NULL; key = key->next) {
                         /*
                          * Grr.  I guess the theory here is that freeing
                          * something sure as heck modifies it, so you
                          * want to ban attempts to free it, but, alas,
                          * if we make the "data" field of an "address"
                          * structure not a "const", the compiler whines if
                          * we try to make it point into the data for a
packet,
                          * as that's a "const" array (and should be, as
dissectors
                          * shouldn't trash it).
                          *
                          * So we cast the complaint into oblivion, and
rely on
                          * the fact that these addresses are known to have
had
                          * their data mallocated, i.e. they don't point
into,
                          * say, the middle of the data for a packet.
                          */
               g_free((gpointer)key->addr1.data);
               g_free((gpointer)key->addr2.data);
             }

>>



                                                                                                                              
                      LEGO                                                                                                    
                      <[email protected]>         To:      "Developer support list for Wireshark"                        
                      Sent by:                         <[email protected]>                                          
                      [email protected]         cc:                                                                    
                      reshark.org                      Subject: Re: [Wireshark-dev] COPY_ADDRESS and g_malloc()               
                                                                                                                              
                                                                                                                              
                      13/11/2006 12:46                                                                                        
                      Please respond to                                                                                       
                      Developer support list                                                                                  
                      for Wireshark                                                                                           
                                                                                                                              




There is another issue, currently COPY_ADDRESS is to be given a
pointer to the address structure to be populated, whose lifetime might
be whatever (stack, se-heap, ep-heap, pe-heap) and not linked to
whatever populates the structure.

I believe that we should have two sets of COPY_ADDRESS one that
returns a newly allocated and populated address struct
(XX_DUP_ADDRESS), and another that does what it's currently being done
(XX_COPY_ADDRESS).

Luis

On 11/13/06, Kukosa, Tomas <[email protected]> wrote:
> I have got the same idea meantime.
>
> T.
>
> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]] On Behalf Of LEGO
> Sent: Monday, November 13, 2006 12:33 PM
> To: Developer support list for Wireshark
> Subject: Re: [Wireshark-dev] COPY_ADDRESS and g_malloc()
>
> may be we should have EP_COPY_ADDRESS, SE_COPY_ADDRESS and
> PE_COPY_ADDRESS instead.
>
>
> On 11/13/06, Kukosa, Tomas <[email protected]> wrote:
> >
> > Hi,
> >
> > does not it make sence to change g_malloc() in COPY_ADDRESS to
> > se_alloc() ?
> > It seems that it is not freed in most cases of usage.
> > Do wee need anywhere longer lifetime then se_alloc() has?
> >
> > Tomas
> >
> >
> >
> > _______________________________________________
> > Wireshark-dev mailing list
> > [email protected]
> > http://www.wireshark.org/mailman/listinfo/wireshark-dev
> >
>
>
> --
> This information is top security. When you have read it, destroy
> yourself.
> -- Marshall McLuhan
> _______________________________________________
> Wireshark-dev mailing list
> [email protected]
> http://www.wireshark.org/mailman/listinfo/wireshark-dev
> _______________________________________________
> Wireshark-dev mailing list
> [email protected]
> http://www.wireshark.org/mailman/listinfo/wireshark-dev
>


--
This information is top security. When you have read it, destroy yourself.
-- Marshall McLuhan
_______________________________________________
Wireshark-dev mailing list
[email protected]
http://www.wireshark.org/mailman/listinfo/wireshark-dev