[JDEV] bug in AIM Transport
stonewell
stonewell at 21cn.com
Thu Jun 15 19:49:09 CDT 2000
Hi,
in libfaim aim_snac.c function
int aim_cleansnacs(struct aim_session_t *sess,
int maxage)
{
struct aim_snac_t *cur;
struct aim_snac_t *remed = NULL;
time_t curtime;
cur = sess->outstanding_snacs;
curtime = time(&curtime);
while (cur)
{
if ( (cur) && (((cur->issuetime) + maxage) < curtime))
{
#if DEBUG > 1
printf("aimsnac: WARNING purged obsolete snac %08lx\n", cur->id);
#endif
remed = aim_remsnac(sess, cur->id);
if (remed)
{
if (remed->data)
free(remed->data);
free(remed);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
after exec this statment,it cause a crash
~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
cur = cur->next;
}
return 0;
}
so maybe change function to this
int aim_cleansnacs(struct aim_session_t *sess,
int maxage)
{
struct aim_snac_t *cur;
struct aim_snac_t *curnext;
struct aim_snac_t *remed = NULL;
time_t curtime;
cur = sess->outstanding_snacs;
curtime = time(&curtime);
while (cur)
{
curnext = cur;
if ( (cur) && (((cur->issuetime) + maxage) < curtime))
{
#if DEBUG > 1
printf("aimsnac: WARNING purged obsolete snac %08lx\n", cur->id);
#endif
remed = aim_remsnac(sess, cur->id);
if (remed)
{
if (remed->data)
free(remed->data);
free(remed);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
after exec this statment,it cause a crash
~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
cur = curnext;
}
return 0;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.jabber.org/jdev/attachments/20000616/cd7bf5d4/attachment-0002.htm>
More information about the JDev
mailing list