--- a/libpurple/protocols/gg/lib/events.c Sat Nov 27 22:36:49 2010 +0000 +++ b/libpurple/protocols/gg/lib/events.c Sun Nov 28 00:18:31 2010 +0000 @@ -1149,6 +1149,7 @@ e->type = GG_EVENT_NOTIFY60; e->event.notify60 = malloc(sizeof(*e->event.notify60)); + if (!e->event.notify60) { gg_debug_session(sess, GG_DEBUG_MISC, "// gg_watch_fd_connected() not enough memory for notify data\n"); goto fail; @@ -1159,7 +1160,7 @@ while (length >= sizeof(struct gg_notify_reply80)) { uint32_t descr_len; char *tmp; - + e->event.notify60[i].uin = gg_fix32(n->uin); e->event.notify60[i].status = gg_fix32(n->status); e->event.notify60[i].remote_ip = n->remote_ip; @@ -1169,7 +1170,6 @@ e->event.notify60[i].version = 0x00; /* not-supported */ e->event.notify60[i].time = 0; /* not-supported */ - descr_len = gg_fix32(n->descr_len); length -= sizeof(struct gg_notify_reply80);