<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; in libfaim aim_snac.c function 
</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>int aim_cleansnacs(struct aim_session_t 
*sess,<BR>&nbsp;&nbsp;&nbsp;&nbsp; int maxage)<BR>{<BR>&nbsp; struct aim_snac_t 
*cur;<BR>&nbsp; struct aim_snac_t *remed = NULL;<BR>&nbsp; time_t 
curtime;<BR>&nbsp;<BR>&nbsp; cur = sess-&gt;outstanding_snacs;<BR>&nbsp; 
<BR>&nbsp; curtime = time(&amp;curtime);<BR>&nbsp;<BR>&nbsp; while 
(cur)<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( (cur) 
&amp;&amp; (((cur-&gt;issuetime) + maxage) &lt; curtime))<BR>&nbsp;{<BR>#if 
DEBUG &gt; 1<BR>&nbsp;&nbsp; printf("aimsnac: WARNING purged obsolete snac 
%08lx\n", cur-&gt;id);<BR>#endif</FONT></DIV>
<DIV><FONT face=Arial size=2><BR>&nbsp;&nbsp; remed = aim_remsnac(sess, 
cur-&gt;id);<BR>&nbsp;&nbsp; if (remed)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
(remed-&gt;data)<BR>&nbsp;&nbsp;free(remed-&gt;data);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
free(remed);<BR>&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></DIV>
<DIV><FONT face=Arial size=2>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; after exec this statment,it 
cause a crash</FONT></DIV>
<DIV><FONT face=Arial 
size=2>~~~~~~~~~~~~~~~~~~~~~~~~~~~<BR>&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
cur = cur-&gt;next;<BR>&nbsp;&nbsp;&nbsp; }</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;<BR>&nbsp; return 0;<BR>}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV><FONT face=Arial size=2>
<DIV><FONT face=Arial size=2>so maybe change function to this</FONT></DIV>
<DIV><BR>
<DIV><FONT face=Arial size=2>int aim_cleansnacs(struct aim_session_t 
*sess,<BR>&nbsp;&nbsp;&nbsp;&nbsp; int maxage)<BR>{<BR>&nbsp; struct aim_snac_t 
*cur;<BR>&nbsp; <STRONG><FONT color=#ff0000>struct aim_snac_t 
*curnext;</FONT></STRONG><BR>&nbsp; struct aim_snac_t *remed = NULL;<BR>&nbsp; 
time_t curtime;<BR>&nbsp;<BR>&nbsp; cur = sess-&gt;outstanding_snacs;<BR>&nbsp; 
<BR>&nbsp; curtime = time(&amp;curtime);<BR>&nbsp;<BR>&nbsp; while 
(cur)<BR>&nbsp;&nbsp;&nbsp; {</FONT></DIV>
<DIV><FONT face=Arial size=2><STRONG><FONT 
color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curnext = 
cur;</FONT></STRONG><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ( (cur) &amp;&amp; 
(((cur-&gt;issuetime) + maxage) &lt; curtime))<BR>&nbsp;{<BR>#if DEBUG &gt; 
1<BR>&nbsp;&nbsp; printf("aimsnac: WARNING purged obsolete snac %08lx\n", 
cur-&gt;id);<BR>#endif</FONT></DIV>
<DIV><FONT face=Arial size=2><BR>&nbsp;&nbsp; remed = aim_remsnac(sess, 
cur-&gt;id);<BR>&nbsp;&nbsp; if (remed)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
(remed-&gt;data)<BR>&nbsp;&nbsp;free(remed-&gt;data);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
free(remed);<BR>&nbsp;&nbsp;&nbsp;&nbsp; }</FONT></DIV>
<DIV><FONT face=Arial size=2>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; after exec this statment,it 
cause a crash</FONT></DIV>
<DIV><FONT face=Arial 
size=2>~~~~~~~~~~~~~~~~~~~~~~~~~~~<BR>&nbsp;}<BR><STRONG><FONT 
color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cur = 
curnext;</FONT></STRONG><BR>&nbsp;&nbsp;&nbsp; }</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;<BR>&nbsp; return 
0;<BR>}</FONT></DIV></DIV>
<DIV></DIV></FONT></BODY></HTML>