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.varenni@xxxxxxxxxxxx> 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: <gogrady@xxxxxxxxx>
To: <wireshark-dev@xxxxxxxxxxxxx>
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@xxxxxxxxxxxxx>
> Archives: http://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
> mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe
___________________________________________________________________________
Sent via: Wireshark-dev mailing list <wireshark-dev@xxxxxxxxxxxxx>
Archives: http://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
mailto:wireshark-dev-request@xxxxxxxxxxxxx?subject=unsubscribe