Hi,
Le mercredi 22 avril 2009 à 20:06 +0000, gogr...@wi.rr.com a écrit :
> well my function is in the dll that i export for my dissector to use. here's 
> the code: 
> 
> (_AppendMultiMsg)( target, bnpLength );   // adds current tvb to the buffer 
> in my dll
> multiMsgSize          = (_GetMultiMsgSize)(); // size of whole buffer as int
> next_tvb              = tvb_new_real_data((const guint8 *)(_GetMultiMsg)(), 
> multiMsgSize, multiMsgSize); //new tvb that holds the buffer from my dll
> tvb_set_free_cb(next_tvb, (_FreeMultiMemory)); // FreeMultiMemory is the 
> function that will free the void* multiMsg object in my dll that is holding 
> the buffer in the first place
> add_new_data_source(pinfo, next_tvb, "Multi-Part Message");
> dissectPacket( next_tvb, bnp_tree, pinfo );
> 


> So i was wondering a way to put my buffer from dll into a new buffer, free 
> the memory from my dll, but have it copied in wireshark memory to use. I had 
> something like this before, would this work?:
> 
Yes but I would use g_malloc() and tvb_set_free_cb(next_tvb, g_free)
rather than ep_alloc().

I'm not sure Wireshark guarantee that tvb buffer life is never greater
than 'ep' memory.

And don't forget the tvb_set_child_real_data_tvbuff() call or you leak
tvb buffer.

Didier
> 
> (_AppendMultiMsg)( target, bnpLength );
> multiMsgSize          = (_GetMultiMsgSize)();
>                       
> free(target);
> target = ep_alloc(multiMsgSize);
> memcpy(target, (_GetMultiMsg)(), multiMsgSize);
> target = (_GetMultiMsg)();
> next_tvb                      = tvb_new_real_data((const guint8 *)target, 
> multiMsgSize, multiMsgSize);*/
> (_FreeMultiMemory)();
> add_new_data_source(pinfo, next_tvb, "Multi-Part Message");
> dissectPacket( next_tvb, bnp_tree, pinfo );
> 
> Thanks for the help,
> 
> Greg


___________________________________________________________________________
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
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to