The problem is caused by a recent patch to the radius_dict.l. The
fclose() calls below cause your double free problem. Please note that
this is not a proper fix for the problem, it is just a temporary
workaround that allows me to run ethereal.
Index: radius_dict.l
===================================================================
--- radius_dict.l (revision 16856)
+++ radius_dict.l (working copy)
@@ -192,7 +192,7 @@
<<EOF>> {
- fclose(yyin);
+ //fclose(yyin);
if ( --include_stack_ptr < 0 ) {
yyterminate();
@@ -377,7 +377,7 @@
yylex();
- fclose(yyin);
+ //fclose(yyin);
for (i=0; i < 10; i++) {
if (fullpaths[i]) g_free(fullpaths[i]);
Joerg Mayer wrote:
> On Mon, Dec 19, 2005 at 11:46:44PM +0100, LEGO wrote:
>
>>Are you building in a 64 bit system?
>>
>>What happens if you remove all dictionary files from {ethereal_dir}/radius ?
>
>
> Hey, nice. This "fixed" my problem with (t)ethereal as well:
> jmayer@egg:~/tmp> MALLOC_CHECK_=1 tethereal -h
> malloc: using debugging hooks
> *** glibc detected *** free(): invalid pointer: 0x0817e920 ***
> This is tethereal 0.10.13 (SVN 20051218205447)
> ...
>
> rm -rf /usr/local/share/ethereal/radius
>
> MALLOC_CHECK_=2 tethereal -h
> This is tethereal 0.10.13 (SVN 20051218205447)
> ...
>
> This is on a Suse 9.3-i386 system.
>
> MALLOC_CHECK_ is a glibc feature.
> 0: silently ignore all errors
> 1: show message and continue
> 2: abort on inconsistencies
>
> So the error is probably triggered by the radius code.
>
> Ciao
> Joerg
>
--
Michael Rozhavsky
Senior Manager, Software Development
Fortinet (Canada) Inc.
4710 Kingsway, Suite 400 Tel: (604) 430-1297 ext. 309
Burnaby, BC V5H 4M2 Canada Fax: (604) 430-1296