--- sm/pres.c.orig Wed Dec 8 21:59:24 2004 +++ sm/pres.c Wed Dec 8 22:02:34 2004 @@ -332,6 +332,13 @@ /** outgoing directed presence */ void pres_deliver(sess_t sess, pkt_t pkt) { + + if(jid_full(pkt->to) == NULL) { + log_debug(ZONE, "invalid jid in directed presence packet"); + pkt_free(pkt); + return; + } + if(pkt->type == pkt_PRESENCE) { /* B7: forward, add to A (unless in T), remove from E */ log_debug(ZONE, "delivering directed available presence to %s", jid_full(pkt->to));