--- a/src/protocols/oscar/im.c Fri Sep 21 17:51:13 2001 +0000 +++ b/src/protocols/oscar/im.c Fri Sep 21 20:47:37 2001 +0000 @@ -1575,6 +1575,9 @@ if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) ret = userfunc(sess, rx, channel, sn, reason); + free(ck); + free(sn); + return ret; } @@ -1584,6 +1587,7 @@ fu16_t type; fu8_t snlen, *ck; char *sn; + int ret = 0; ck = aimbs_getraw(bs, 8); type = aimbs_get16(bs); @@ -1591,12 +1595,12 @@ sn = aimbs_getstr(bs, snlen); if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype))) - return userfunc(sess, rx, type, sn); + ret = userfunc(sess, rx, type, sn); free(sn); free(ck); - return 0; + return ret; } static int snachandler(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs)