Hmm, we'll this is the first time i am working with memory and am just learning all about it. In those examples they seem to allocate and free in the same function, but i cant do that. In my dll i have one function that allocates memory and passes a char * back to the dissector to set a variable with it, then i have another function that frees it in the dll (pass it the char * and free it with free((void *)variable);) but that also gives me an error, so i'm not sure how and where to free the memory.
Greg ---- Gianluca Varenni <gianluca.vare...@cacetech.com> wrote: ============= If the memory is allocated within the DLL, it should be freed from within the DLL (i.e. you should provide a function exported by the DLL to free such memory). Allocating memory with malloc in a DLL and free'ing it from outside the DLL is bad mojo. http://msdn.microsoft.com/en-us/library/ms235460(VS.80).aspx Have a nice day GV ----- Original Message ----- From: <gogr...@wi.rr.com> To: <wireshark-dev@wireshark.org> Sent: Tuesday, March 24, 2009 9:57 AM Subject: [Wireshark-dev] Memory Leak > Hi all, > > So in my dissector, i call a dll that allocates memory for information to > be returned back for output, but when i try and free the memory, i get an > error. I was wondering what the scope of the memory would be and where i > should free it, maybe i'm freeing it wrong. I allocate it in my dll after > if(tree) and free it at the end of the if statement. This is how i > allocate: > > char * change = (char *)malloc(string.GetLength()+1); > memset(change,0,string.GetLength()+1); > ::strncpy_s(change, string.GetLength()+1, string, string.GetLength()); > return change; > > and i just want to use free(variable); but i get: > > HEAP[wireshark.exe]: Invalid Address specified to RtlFreeHeap( 027E0000, > 05E8F998 ) > Windows has triggered a breakpoint in wireshark.exe. > > This may be due to a corruption of the heap, which indicates a bug in > wireshark.exe or any of the DLLs it has loaded. > > This may also be due to the user pressing F12 while wireshark.exe has > focus. > > The output window may have more diagnostic information. > > pointing to the: > ::strncpy_s(change, string.GetLength()+1, string, string.GetLength()); > line > > Thanks for any 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 ___________________________________________________________________________ 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 ___________________________________________________________________________ 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