Mercurial > pidgin.yaz
changeset 17253:7befa48ab574
merge of '4e303e0d82031bfb84148de1b35be7efabbb36f7'
and '522048c8056ba8571da0e228fa9b9570d65da0eb'
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Wed, 23 May 2007 06:28:36 +0000 |
parents | 9235189117c0 (diff) c72295a65f7a (current diff) |
children | 0d9fba04fc85 |
files | libpurple/protocols/oscar/family_auth.c |
diffstat | 35 files changed, 339 insertions(+), 613 deletions(-) [+] |
line wrap: on
line diff
--- a/AUTHORS Wed May 23 06:24:15 2007 +0000 +++ b/AUTHORS Wed May 23 06:28:36 2007 +0000 @@ -3,8 +3,7 @@ For a complete list of all contributors, see the COPYRIGHT file. -We've got an IRC room now too, #pidgin on irc.freenode.net -(#pidgin-win32 for Windows users). Come check us out. +We've got an IRC room now too, #pidgin on irc.freenode.net. Come check us out. Current Developers: ------------------
--- a/libpurple/ft.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/ft.c Wed May 23 06:28:36 2007 +0000 @@ -891,7 +891,7 @@ r = purple_xfer_read(xfer, &buffer); if (r > 0) { fwrite(buffer, 1, r, xfer->dest_fp); - } else if(r <= 0) { + } else if(r < 0) { purple_xfer_cancel_remote(xfer); return; }
--- a/libpurple/protocols/msn/msn.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/msn/msn.c Wed May 23 06:28:36 2007 +0000 @@ -1297,7 +1297,12 @@ conv = swboard->conv; - msn_switchboard_release(swboard, MSN_SB_FLAG_IM); + /* If we release the switchboard here, it may still have messages + pending ACK which would result in incorrect unsent message errors. + Just let it timeout... This is *so* going to screw with people who + use dumb clients that report "User has closed the conversation window" */ + /* msn_switchboard_release(swboard, MSN_SB_FLAG_IM); */ + swboard->conv = NULL; /* If other switchboards managed to associate themselves with this * conv, make sure they know it's gone! */
--- a/libpurple/protocols/oscar/bstream.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/bstream.c Wed May 23 06:28:36 2007 +0000 @@ -172,10 +172,10 @@ { guint8 *ob; - ob = malloc(len); + ob = g_malloc(len); if (byte_stream_getrawbuf(bs, ob, len) < len) { - free(ob); + g_free(ob); return NULL; } @@ -186,10 +186,10 @@ { char *ob; - ob = malloc(len + 1); + ob = g_malloc(len + 1); if (byte_stream_getrawbuf(bs, (guint8 *)ob, len) < len) { - free(ob); + g_free(ob); return NULL; }
--- a/libpurple/protocols/oscar/family_admin.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_admin.c Wed May 23 06:28:36 2007 +0000 @@ -81,12 +81,12 @@ switch (type) { case 0x0001: { - free(sn); + g_free(sn); sn = byte_stream_getstr(bs, length); } break; case 0x0004: { - free(url); + g_free(url); url = byte_stream_getstr(bs, length); } break; @@ -95,7 +95,7 @@ } break; case 0x0011: { - free(email); + g_free(email); if (length == 0) email = g_strdup("*suppressed"); else @@ -109,9 +109,9 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) userfunc(od, conn, frame, (snac->subtype == 0x0005) ? 1 : 0, perms, err, url, sn, email); - free(sn); - free(url); - free(email); + g_free(sn); + g_free(url); + g_free(email); return 1; }
--- a/libpurple/protocols/oscar/family_alert.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_alert.c Wed May 23 06:28:36 2007 +0000 @@ -111,10 +111,10 @@ for (new = od->emailinfo; (new && memcmp(cookie16, new->cookie16, 16)); new = new->next); if (new) { /* Free some of the old info, if it exists */ - free(new->cookie8); - free(new->cookie16); - free(new->url); - free(new->domain); + g_free(new->cookie8); + g_free(new->cookie16); + g_free(new->url); + g_free(new->domain); } else { /* We don't already have info, so create a new struct for it */ new = g_new0(struct aim_emailinfo, 1); @@ -154,8 +154,8 @@ aim_tlvlist_free(&tlvlist); - free(alertitle); - free(alerturl); + g_free(alertitle); + g_free(alerturl); return ret; } @@ -210,11 +210,11 @@ { struct aim_emailinfo *tmp = od->emailinfo; od->emailinfo = od->emailinfo->next; - free(tmp->cookie16); - free(tmp->cookie8); - free(tmp->url); - free(tmp->domain); - free(tmp); + g_free(tmp->cookie16); + g_free(tmp->cookie8); + g_free(tmp->url); + g_free(tmp->domain); + g_free(tmp); } return;
--- a/libpurple/protocols/oscar/family_auth.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_auth.c Wed May 23 06:28:36 2007 +0000 @@ -134,7 +134,7 @@ guint8 *password_encoded; passwdlen = strlen(password); - password_encoded = (guint8 *)malloc(passwdlen+1); + password_encoded = (guint8 *)g_malloc(passwdlen+1); if (passwdlen > MAXICQPASSLEN) passwdlen = MAXICQPASSLEN; @@ -159,7 +159,7 @@ aim_tlvlist_write(&frame->data, &tl); - free(password_encoded); + g_free(password_encoded); aim_tlvlist_free(&tl); flap_connection_send(conn, frame); @@ -224,12 +224,10 @@ /* Truncate ICQ and AOL passwords, if necessary */ password_len = strlen(password); -fprintf(stderr, "1 password_len=%zu\n", password_len); if (isdigit(sn[0]) && (password_len > MAXICQPASSLEN)) password_len = MAXICQPASSLEN; else if (truncate_pass && password_len > 8) password_len = 8; -fprintf(stderr, "2 password_len=%zu\n", password_len); aim_encode_password_md5(password, password_len, key, digest); @@ -540,7 +538,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, keystr, (int)truncate_pass); - free(keystr); + g_free(keystr); aim_tlvlist_free(&tlvlist); return ret;
--- a/libpurple/protocols/oscar/family_bart.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_bart.c Wed May 23 06:28:36 2007 +0000 @@ -151,9 +151,9 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, sn, iconcsumtype, iconcsum, iconcsumlen, icon, iconlen); - free(sn); - free(iconcsum); - free(icon); + g_free(sn); + g_free(iconcsum); + g_free(icon); return ret; }
--- a/libpurple/protocols/oscar/family_bos.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_bos.c Wed May 23 06:28:36 2007 +0000 @@ -136,7 +136,7 @@ else return -EINVAL; - localcpy = strdup(denylist); + localcpy = g_strdup(denylist); listcount = aimutil_itemcnt(localcpy, '&'); packlen = aimutil_tokslen(localcpy, 99, '&') + listcount + 9; @@ -152,9 +152,9 @@ byte_stream_put8(&frame->data, strlen(tmpptr)); byte_stream_putstr(&frame->data, tmpptr); - free(tmpptr); + g_free(tmpptr); } - free(localcpy); + g_free(localcpy); flap_connection_send(conn, frame);
--- a/libpurple/protocols/oscar/family_buddy.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_buddy.c Wed May 23 06:28:36 2007 +0000 @@ -135,7 +135,7 @@ char *localcpy = NULL; char *tmpptr = NULL; - if (!buddy_list || !(localcpy = strdup(buddy_list))) + if (!buddy_list || !(localcpy = g_strdup(buddy_list))) return -EINVAL; for (tmpptr = strtok(localcpy, "&"); tmpptr; ) { @@ -162,7 +162,7 @@ flap_connection_send(conn, frame); - free(localcpy); + g_free(localcpy); return 0; }
--- a/libpurple/protocols/oscar/family_chat.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_chat.c Wed May 23 06:28:36 2007 +0000 @@ -41,8 +41,8 @@ struct chatconnpriv *ccp = (struct chatconnpriv *)conn->internal; if (ccp) - free(ccp->name); - free(ccp); + g_free(ccp->name); + g_free(ccp); return; } @@ -100,12 +100,12 @@ return -EINVAL; if (conn->internal) - free(conn->internal); + g_free(conn->internal); ccp = g_new(struct chatconnpriv, 1); ccp->exchange = exchange; - ccp->name = strdup(roomname); + ccp->name = g_strdup(roomname); ccp->instance = instance; conn->internal = (void *)ccp; @@ -203,7 +203,7 @@ ByteStream occbs; /* Allocate enough userinfo structs for all occupants */ - userinfo = calloc(usercount, sizeof(aim_userinfo_t)); + userinfo = g_new0(aim_userinfo_t, usercount); byte_stream_init(&occbs, tlv->value, tlv->length); @@ -301,14 +301,14 @@ maxvisiblemsglen); } - free(roominfo.name); + g_free(roominfo.name); while (usercount > 0) aim_info_free(&userinfo[--usercount]); - free(userinfo); - free(roomname); - free(roomdesc); + g_free(userinfo); + g_free(roomname); + g_free(roomdesc); aim_tlvlist_free(&tlvlist); return ret; @@ -324,7 +324,7 @@ while (byte_stream_empty(bs)) { curcount++; - userinfo = realloc(userinfo, curcount * sizeof(aim_userinfo_t)); + userinfo = g_realloc(userinfo, curcount * sizeof(aim_userinfo_t)); aim_info_extract(od, bs, &userinfo[curcount-1]); } @@ -332,7 +332,7 @@ ret = userfunc(od, conn, frame, curcount, userinfo); aim_info_free(userinfo); - free(userinfo); + g_free(userinfo); return ret; } @@ -488,8 +488,8 @@ cookie[i] = byte_stream_get8(bs); if ((ck = aim_uncachecookie(od, cookie, AIM_COOKIETYPE_CHAT))) { - free(ck->data); - free(ck); + g_free(ck->data); + g_free(ck); } /* @@ -569,9 +569,9 @@ ret = userfunc(od, conn, frame, &userinfo, len, msg, encoding, language); aim_info_free(&userinfo); - free(msg); - free(encoding); - free(language); + g_free(msg); + g_free(encoding); + g_free(language); aim_tlvlist_free(&tlvlist); return ret;
--- a/libpurple/protocols/oscar/family_chatnav.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_chatnav.c Wed May 23 06:28:36 2007 +0000 @@ -133,7 +133,7 @@ curexchange++; - exchanges = realloc(exchanges, curexchange * sizeof(struct aim_chat_exchangeinfo)); + exchanges = g_realloc(exchanges, curexchange * sizeof(struct aim_chat_exchangeinfo)); /* exchange number */ exchanges[curexchange-1].number = byte_stream_get16(&tbs); @@ -300,13 +300,13 @@ ret = userfunc(od, conn, frame, snac2->type, maxrooms, curexchange, exchanges); for (curexchange--; curexchange >= 0; curexchange--) { - free(exchanges[curexchange].name); - free(exchanges[curexchange].charset1); - free(exchanges[curexchange].lang1); - free(exchanges[curexchange].charset2); - free(exchanges[curexchange].lang2); + g_free(exchanges[curexchange].name); + g_free(exchanges[curexchange].charset1); + g_free(exchanges[curexchange].lang1); + g_free(exchanges[curexchange].charset2); + g_free(exchanges[curexchange].lang2); } - free(exchanges); + g_free(exchanges); aim_tlvlist_free(&tlvlist); return ret; @@ -345,7 +345,7 @@ if (detaillevel != 0x02) { purple_debug_misc("oscar", "unknown detaillevel in create room response (0x%02x)\n", detaillevel); aim_tlvlist_free(&tlvlist); - free(ck); + g_free(ck); return 0; } @@ -378,9 +378,9 @@ ret = userfunc(od, conn, frame, snac2->type, fqcn, instance, exchange, flags, createtime, maxmsglen, maxoccupancy, createperms, unknown, name, ck); } - free(ck); - free(name); - free(fqcn); + g_free(ck); + g_free(name); + g_free(fqcn); aim_tlvlist_free(&innerlist); aim_tlvlist_free(&tlvlist); @@ -442,8 +442,8 @@ purple_debug_misc("oscar", "chatnav_parse_info: unknown request subtype (%04x)\n", snac2->type); if (snac2) - free(snac2->data); - free(snac2); + g_free(snac2->data); + g_free(snac2); return ret; }
--- a/libpurple/protocols/oscar/family_feedbag.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_feedbag.c Wed May 23 06:28:36 2007 +0000 @@ -81,7 +81,7 @@ if (newlen > 0) { guint8 *newdata; - newdata = (guint8 *)malloc((newlen)*sizeof(guint8)); + newdata = (guint8 *)g_malloc((newlen)*sizeof(guint8)); newlen = 0; if (group->gid == 0x0000) { for (cur=list; cur; cur=cur->next) @@ -94,7 +94,7 @@ } aim_tlvlist_replace_raw(&group->data, 0x00c8, newlen, newdata); - free(newdata); + g_free(newdata); } } @@ -115,11 +115,11 @@ gboolean exists; struct aim_ssi_item *cur, *new; - new = (struct aim_ssi_item *)malloc(sizeof(struct aim_ssi_item)); + new = (struct aim_ssi_item *)g_malloc(sizeof(struct aim_ssi_item)); /* Set the name */ if (name) { - new->name = (char *)malloc((strlen(name)+1)*sizeof(char)); + new->name = (char *)g_malloc((strlen(name)+1)*sizeof(char)); strcpy(new->name, name); } else new->name = NULL; @@ -213,9 +213,9 @@ } /* Free the removed item */ - free(del->name); + g_free(del->name); aim_tlvlist_free(&del->data); - free(del); + g_free(del); return 0; } @@ -510,7 +510,7 @@ for (cur1=od->ssi.local; cur1 && (n < 15); cur1=cur1->next) { if (!aim_ssi_itemlist_find(od->ssi.official, cur1->gid, cur1->bid)) { n++; - new = (struct aim_ssi_tmp *)malloc(sizeof(struct aim_ssi_tmp)); + new = (struct aim_ssi_tmp *)g_malloc(sizeof(struct aim_ssi_tmp)); new->action = SNAC_SUBTYPE_FEEDBAG_ADD; new->ack = 0xffff; new->name = NULL; @@ -530,7 +530,7 @@ for (cur1=od->ssi.official; cur1 && (n < 15); cur1=cur1->next) { if (!aim_ssi_itemlist_find(od->ssi.local, cur1->gid, cur1->bid)) { n++; - new = (struct aim_ssi_tmp *)malloc(sizeof(struct aim_ssi_tmp)); + new = (struct aim_ssi_tmp *)g_malloc(sizeof(struct aim_ssi_tmp)); new->action = SNAC_SUBTYPE_FEEDBAG_DEL; new->ack = 0xffff; new->name = NULL; @@ -551,7 +551,7 @@ cur2 = aim_ssi_itemlist_find(od->ssi.official, cur1->gid, cur1->bid); if (cur2 && (aim_ssi_itemlist_cmp(cur1, cur2))) { n++; - new = (struct aim_ssi_tmp *)malloc(sizeof(struct aim_ssi_tmp)); + new = (struct aim_ssi_tmp *)g_malloc(sizeof(struct aim_ssi_tmp)); new->action = SNAC_SUBTYPE_FEEDBAG_MOD; new->ack = 0xffff; new->name = NULL; @@ -609,25 +609,25 @@ while (cur) { del = cur; cur = cur->next; - free(del->name); + g_free(del->name); aim_tlvlist_free(&del->data); - free(del); + g_free(del); } cur = od->ssi.local; while (cur) { del = cur; cur = cur->next; - free(del->name); + g_free(del->name); aim_tlvlist_free(&del->data); - free(del); + g_free(del); } curtmp = od->ssi.pending; while (curtmp) { deltmp = curtmp; curtmp = curtmp->next; - free(deltmp); + g_free(deltmp); } od->ssi.numitems = 0; @@ -672,7 +672,7 @@ char *alias = aim_ssi_getalias(od->ssi.local, NULL, cur->name); aim_ssi_addbuddy(od, cur->name, "orphans", alias, NULL, NULL, 0); aim_ssi_delbuddy(od, cur->name, NULL); - free(alias); + g_free(alias); } cur = next; } @@ -929,7 +929,7 @@ aim_ssi_delbuddy(od, sn, oldgn); aim_ssi_addbuddy(od, sn, newgn, alias, NULL, NULL, waitingforauth); - free(alias); + g_free(alias); return 0; } @@ -1012,8 +1012,8 @@ if (!(group = aim_ssi_itemlist_finditem(od->ssi.local, oldgn, NULL, AIM_SSI_TYPE_GROUP))) return -EINVAL; - free(group->name); - group->name = (char *)malloc((strlen(newgn)+1)*sizeof(char)); + g_free(group->name); + group->name = (char *)g_malloc((strlen(newgn)+1)*sizeof(char)); strcpy(group->name, newgn); /* Sync our local list with the server list */ @@ -1086,12 +1086,12 @@ } /* Need to add the 0x00d5 TLV to the TLV chain */ - csumdata = (guint8 *)malloc((iconsumlen+2)*sizeof(guint8)); + csumdata = (guint8 *)g_malloc((iconsumlen+2)*sizeof(guint8)); aimutil_put8(&csumdata[0], 0x00); aimutil_put8(&csumdata[1], iconsumlen); memcpy(&csumdata[2], iconsum, iconsumlen); aim_tlvlist_replace_raw(&tmp->data, 0x00d5, (iconsumlen+2) * sizeof(guint8), csumdata); - free(csumdata); + g_free(csumdata); /* Need to add the 0x0131 TLV to the TLV chain, used to cache the icon */ aim_tlvlist_replace_noval(&tmp->data, 0x0131); @@ -1188,7 +1188,7 @@ byte_stream_init(&bstream, tlv->value, tlv->length); - maxitems = (guint16 *)malloc((tlv->length/2)*sizeof(guint16)); + maxitems = (guint16 *)g_malloc((tlv->length/2)*sizeof(guint16)); for (i=0; i<(tlv->length/2); i++) maxitems[i] = byte_stream_get16(&bstream); @@ -1197,7 +1197,7 @@ ret = userfunc(od, conn, frame, tlv->length/2, maxitems); aim_tlvlist_free(&tlvlist); - free(maxitems); + g_free(maxitems); return ret; } @@ -1283,7 +1283,7 @@ type = byte_stream_get16(bs); data = aim_tlvlist_readlen(bs, byte_stream_get16(bs)); aim_ssi_itemlist_add(&od->ssi.official, name, gid, bid, type, data); - free(name); + g_free(name); aim_tlvlist_free(&data); } @@ -1411,7 +1411,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, type, name); - free(name); + g_free(name); } return ret; @@ -1447,9 +1447,9 @@ /* Replace the 2 local items with the given one */ if ((item = aim_ssi_itemlist_find(od->ssi.local, gid, bid))) { item->type = type; - free(item->name); + g_free(item->name); if (name) { - item->name = (char *)malloc((strlen(name)+1)*sizeof(char)); + item->name = (char *)g_malloc((strlen(name)+1)*sizeof(char)); strcpy(item->name, name); } else item->name = NULL; @@ -1459,9 +1459,9 @@ if ((item = aim_ssi_itemlist_find(od->ssi.official, gid, bid))) { item->type = type; - free(item->name); + g_free(item->name); if (name) { - item->name = (char *)malloc((strlen(name)+1)*sizeof(char)); + item->name = (char *)g_malloc((strlen(name)+1)*sizeof(char)); strcpy(item->name, name); } else item->name = NULL; @@ -1472,7 +1472,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame); - free(name); + g_free(name); aim_tlvlist_free(&data); } @@ -1543,7 +1543,7 @@ /* Make sure cur->item is still valid memory */ if (aim_ssi_itemlist_valid(od->ssi.local, cur->item)) { if (cur->item->name) { - cur->name = (char *)malloc((strlen(cur->item->name)+1)*sizeof(char)); + cur->name = (char *)g_malloc((strlen(cur->item->name)+1)*sizeof(char)); strcpy(cur->name, cur->item->name); } aim_ssi_itemlist_del(&od->ssi.local, cur->item); @@ -1555,9 +1555,9 @@ if (aim_ssi_itemlist_valid(od->ssi.local, cur->item)) { struct aim_ssi_item *cur1; if ((cur1 = aim_ssi_itemlist_find(od->ssi.official, cur->item->gid, cur->item->bid))) { - free(cur->item->name); + g_free(cur->item->name); if (cur1->name) { - cur->item->name = (char *)malloc((strlen(cur1->name)+1)*sizeof(char)); + cur->item->name = (char *)g_malloc((strlen(cur1->name)+1)*sizeof(char)); strcpy(cur->item->name, cur1->name); } else cur->item->name = NULL; @@ -1589,9 +1589,9 @@ if (aim_ssi_itemlist_valid(od->ssi.local, cur->item)) { struct aim_ssi_item *cur1; if ((cur1 = aim_ssi_itemlist_find(od->ssi.official, cur->item->gid, cur->item->bid))) { - free(cur1->name); + g_free(cur1->name); if (cur->item->name) { - cur1->name = (char *)malloc((strlen(cur->item->name)+1)*sizeof(char)); + cur1->name = (char *)g_malloc((strlen(cur->item->name)+1)*sizeof(char)); strcpy(cur1->name, cur->item->name); } else cur1->name = NULL; @@ -1620,8 +1620,8 @@ while (cur && (cur->ack != 0xffff)) { del = cur; cur = cur->next; - free(del->name); - free(del); + g_free(del->name); + g_free(del); } od->ssi.pending = cur; @@ -1757,8 +1757,8 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, sn, msg); - free(sn); - free(msg); + g_free(sn); + g_free(msg); return ret; } @@ -1831,8 +1831,8 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, sn, msg); - free(sn); - free(msg); + g_free(sn); + g_free(msg); return ret; } @@ -1918,8 +1918,8 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, sn, reply, msg); - free(sn); - free(msg); + g_free(sn); + g_free(msg); return ret; } @@ -1943,7 +1943,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, sn); - free(sn); + g_free(sn); return ret; }
--- a/libpurple/protocols/oscar/family_icbm.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_icbm.c Wed May 23 06:28:36 2007 +0000 @@ -468,16 +468,16 @@ aim_putsnac(&frame->data, 0x0004, 0x0006, 0x0000, snacid); /* XXX should be uncached by an unwritten 'invite accept' handler */ - priv = malloc(sizeof(struct aim_invite_priv)); - priv->sn = strdup(sn); - priv->roomname = strdup(roomname); + priv = g_malloc(sizeof(struct aim_invite_priv)); + priv->sn = g_strdup(sn); + priv->roomname = g_strdup(roomname); priv->exchange = exchange; priv->instance = instance; if ((msgcookie = aim_mkcookie(cookie, AIM_COOKIETYPE_INVITE, priv))) aim_cachecookie(od, msgcookie); else - free(priv); + g_free(priv); /* ICBM Header */ aim_im_puticbm(&frame->data, cookie, 0x0002, sn); @@ -1279,8 +1279,8 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, channel, sn, msg, icbmflags, flag1, flag2); - free(sn); - free(msg); + g_free(sn); + g_free(msg); aim_tlvlist_free(&tlvlist); return ret; @@ -1335,7 +1335,7 @@ { aim_mpmsg_section_t *sec; - sec = malloc(sizeof(aim_mpmsg_section_t)); + sec = g_malloc(sizeof(aim_mpmsg_section_t)); sec->charset = charset; sec->charsubset = charsubset; @@ -1362,11 +1362,11 @@ { gchar *dup; - dup = malloc(datalen); + dup = g_malloc(datalen); memcpy(dup, data, datalen); if (mpmsg_addsection(od, mpm, charset, charsubset, dup, datalen) == -1) { - free(dup); + g_free(dup); return -1; } @@ -1378,11 +1378,11 @@ { gchar *dup; - if (!(dup = strdup(ascii))) + if (!(dup = g_strdup(ascii))) return -1; if (mpmsg_addsection(od, mpm, 0x0000, 0x0000, dup, strlen(ascii)) == -1) { - free(dup); + g_free(dup); return -1; } @@ -1395,7 +1395,7 @@ ByteStream bs; int i; - buf = malloc(unicodelen * 2); + buf = g_malloc(unicodelen * 2); byte_stream_init(&bs, (guchar *)buf, unicodelen * 2); @@ -1404,7 +1404,7 @@ byte_stream_put16(&bs, unicode[i]); if (mpmsg_addsection(od, mpm, 0x0002, 0x0000, buf, byte_stream_curpos(&bs)) == -1) { - free(buf); + g_free(buf); return -1; } @@ -1419,8 +1419,8 @@ aim_mpmsg_section_t *tmp; tmp = cur->next; - free(cur->data); - free(cur); + g_free(cur->data); + g_free(cur); cur = tmp; } @@ -1659,7 +1659,7 @@ purple_debug_misc("oscar", "Received an IM containing an invalid message part from %s. They are probably trying to do something malicious.\n", userinfo->sn); break; } - free(args.extdata); + g_free(args.extdata); args.extdatalen = length; if (args.extdatalen == 0) args.extdata = NULL; @@ -1686,8 +1686,8 @@ ret = userfunc(od, conn, frame, channel, userinfo, &args); aim_mpmsg_free(od, &args.mpmsg); - free(args.features); - free(args.extdata); + g_free(args.features); + g_free(args.extdata); return ret; } @@ -1733,10 +1733,10 @@ purple_debug_misc("oscar", "got a buddy list from %s: group %s, buddy %s\n", userinfo->sn, gn, bn); - free(bn); + g_free(bn); } - free(gn); + g_free(gn); } return; @@ -1745,7 +1745,7 @@ static void incomingim_ch2_buddyicon_free(OscarData *od, IcbmArgsCh2 *args) { - free(args->info.icon.icon); + g_free(args->info.icon.icon); return; } @@ -1767,7 +1767,7 @@ incomingim_ch2_chat_free(OscarData *od, IcbmArgsCh2 *args) { /* XXX - aim_chat_roominfo_free() */ - free(args->info.chat.roominfo.name); + g_free(args->info.chat.roominfo.name); return; } @@ -1786,7 +1786,7 @@ static void incomingim_ch2_icqserverrelay_free(OscarData *od, IcbmArgsCh2 *args) { - free((char *)args->info.rtfmsg.rtfmsg); + g_free((char *)args->info.rtfmsg.rtfmsg); } /* @@ -1832,7 +1832,7 @@ static void incomingim_ch2_sendfile_free(OscarData *od, IcbmArgsCh2 *args) { - free(args->info.sendfile.filename); + g_free(args->info.sendfile.filename); } /* Someone is sending us a file */ @@ -1918,11 +1918,11 @@ { purple_debug_warning("oscar", "Cookies don't match in rendezvous ICBM, bailing out.\n"); - free(cookie2); + g_free(cookie2); return 1; } memcpy(args.cookie, cookie2, 8); - free(cookie2); + g_free(cookie2); /* * The next 16bytes are a capability block so we can @@ -2074,9 +2074,9 @@ if (args.destructor) ((ch2_args_destructor_t)args.destructor)(od, &args); - free((char *)args.msg); - free((char *)args.encoding); - free((char *)args.language); + g_free((char *)args.msg); + g_free((char *)args.encoding); + g_free((char *)args.language); aim_tlvlist_free(&list2); @@ -2107,7 +2107,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, channel, userinfo, &args); - free(args.msg); + g_free(args.msg); return ret; } @@ -2210,7 +2210,7 @@ } aim_info_free(&userinfo); - free(cookie); + g_free(cookie); return ret; } @@ -2379,7 +2379,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, channel, sn, reason, state, msg); - free(msg); + g_free(msg); } break; default: { @@ -2389,8 +2389,8 @@ } /* end switch */ } - free(cookie); - free(sn); + g_free(cookie); + g_free(sn); return ret; } @@ -2418,8 +2418,8 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, ch, sn); - free(sn); - free(cookie); + g_free(sn); + g_free(cookie); return ret; } @@ -2502,7 +2502,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, type1, sn, type2); - free(sn); + g_free(sn); return ret; }
--- a/libpurple/protocols/oscar/family_icq.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_icq.c Wed May 23 06:28:36 2007 +0000 @@ -212,7 +212,7 @@ flap_connection_send(conn, frame); /* Keep track of this request and the ICQ number and request ID */ - info = (struct aim_icq_info *)calloc(1, sizeof(struct aim_icq_info)); + info = (struct aim_icq_info *)g_new0(struct aim_icq_info, 1); info->reqid = snacid; info->uin = atoi(uin); info->next = od->icq_info; @@ -256,7 +256,7 @@ flap_connection_send(conn, frame); /* Keep track of this request and the ICQ number and request ID */ - info = (struct aim_icq_info *)calloc(1, sizeof(struct aim_icq_info)); + info = (struct aim_icq_info *)g_new0(struct aim_icq_info, 1); info->reqid = snacid; info->uin = atoi(uin); info->next = od->icq_info; @@ -426,7 +426,7 @@ flap_connection_send(conn, frame); - free(xml); + g_free(xml); return 0; } @@ -437,34 +437,34 @@ if (!info) return; - free(info->nick); - free(info->first); - free(info->last); - free(info->email); - free(info->homecity); - free(info->homestate); - free(info->homephone); - free(info->homefax); - free(info->homeaddr); - free(info->mobile); - free(info->homezip); - free(info->personalwebpage); + g_free(info->nick); + g_free(info->first); + g_free(info->last); + g_free(info->email); + g_free(info->homecity); + g_free(info->homestate); + g_free(info->homephone); + g_free(info->homefax); + g_free(info->homeaddr); + g_free(info->mobile); + g_free(info->homezip); + g_free(info->personalwebpage); if (info->email2) for (i = 0; i < info->numaddresses; i++) - free(info->email2[i]); - free(info->email2); - free(info->workcity); - free(info->workstate); - free(info->workphone); - free(info->workfax); - free(info->workaddr); - free(info->workzip); - free(info->workcompany); - free(info->workdivision); - free(info->workposition); - free(info->workwebpage); - free(info->info); - free(info); + g_free(info->email2[i]); + g_free(info->email2); + g_free(info->workcity); + g_free(info->workstate); + g_free(info->workphone); + g_free(info->workfax); + g_free(info->workaddr); + g_free(info->workzip); + g_free(info->workcompany); + g_free(info->workdivision); + g_free(info->workposition); + g_free(info->workwebpage); + g_free(info->info); + g_free(info); } /** @@ -515,7 +515,7 @@ if ((userfunc = aim_callhandler(od, SNAC_FAMILY_ICQ, SNAC_SUBTYPE_ICQ_OFFLINEMSG))) ret = userfunc(od, conn, frame, &msg); - free(msg.msg); + g_free(msg.msg); } else if (cmd == 0x0042) { aim_rxcallback_t userfunc; @@ -534,7 +534,7 @@ /* find other data from the same request */ for (info = od->icq_info; info && (info->reqid != reqid); info = info->next); if (!info) { - info = (struct aim_icq_info *)calloc(1, sizeof(struct aim_icq_info)); + info = (struct aim_icq_info *)g_new0(struct aim_icq_info, 1); info->reqid = reqid; info->next = od->icq_info; od->icq_info = info; @@ -603,7 +603,7 @@ case 0x00eb: { /* email address(es) */ int i; info->numaddresses = byte_stream_getle16(&qbs); - info->email2 = (char **)calloc(info->numaddresses, sizeof(char *)); + info->email2 = (char **)g_new0(char *, info->numaddresses); for (i = 0; i < info->numaddresses; i++) { info->email2[i] = byte_stream_getstr(&qbs, byte_stream_getle16(&qbs)); if (i+1 != info->numaddresses)
--- a/libpurple/protocols/oscar/family_locate.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_locate.c Wed May 23 06:28:36 2007 +0000 @@ -238,8 +238,8 @@ cur = aim_locate_finduserinfo(od, userinfo->sn); if (cur == NULL) { - cur = (aim_userinfo_t *)calloc(1, sizeof(aim_userinfo_t)); - cur->sn = strdup(userinfo->sn); + cur = (aim_userinfo_t *)g_new0(aim_userinfo_t, 1); + cur->sn = g_strdup(userinfo->sn); cur->next = od->locate.userinfo; od->locate.userinfo = cur; } @@ -261,63 +261,63 @@ cur->present |= userinfo->present; if (userinfo->iconcsumlen > 0) { - free(cur->iconcsum); - cur->iconcsum = (guint8 *)malloc(userinfo->iconcsumlen); + g_free(cur->iconcsum); + cur->iconcsum = (guint8 *)g_malloc(userinfo->iconcsumlen); memcpy(cur->iconcsum, userinfo->iconcsum, userinfo->iconcsumlen); cur->iconcsumlen = userinfo->iconcsumlen; } if (userinfo->info != NULL) { - free(cur->info); - free(cur->info_encoding); + g_free(cur->info); + g_free(cur->info_encoding); if (userinfo->info_len > 0) { - cur->info = (char *)malloc(userinfo->info_len); + cur->info = (char *)g_malloc(userinfo->info_len); memcpy(cur->info, userinfo->info, userinfo->info_len); } else cur->info = NULL; - cur->info_encoding = strdup(userinfo->info_encoding); + cur->info_encoding = g_strdup(userinfo->info_encoding); cur->info_len = userinfo->info_len; } if (userinfo->status != NULL) { - free(cur->status); - free(cur->status_encoding); + g_free(cur->status); + g_free(cur->status_encoding); if (userinfo->status_len > 0) { - cur->status = (char *)malloc(userinfo->status_len); + cur->status = (char *)g_malloc(userinfo->status_len); memcpy(cur->status, userinfo->status, userinfo->status_len); } else cur->status = NULL; if (userinfo->status_encoding != NULL) - cur->status_encoding = strdup(userinfo->status_encoding); + cur->status_encoding = g_strdup(userinfo->status_encoding); else cur->status_encoding = NULL; cur->status_len = userinfo->status_len; } if (userinfo->itmsurl != NULL) { - free(cur->itmsurl); - free(cur->itmsurl_encoding); + g_free(cur->itmsurl); + g_free(cur->itmsurl_encoding); if (userinfo->itmsurl_len > 0) { - cur->itmsurl = (char *)malloc(userinfo->itmsurl_len); + cur->itmsurl = (char *)g_malloc(userinfo->itmsurl_len); memcpy(cur->itmsurl, userinfo->itmsurl, userinfo->itmsurl_len); } else cur->itmsurl = NULL; if (userinfo->itmsurl_encoding != NULL) - cur->itmsurl_encoding = strdup(userinfo->itmsurl_encoding); + cur->itmsurl_encoding = g_strdup(userinfo->itmsurl_encoding); else cur->itmsurl_encoding = NULL; cur->itmsurl_len = userinfo->itmsurl_len; } if (userinfo->away != NULL) { - free(cur->away); - free(cur->away_encoding); + g_free(cur->away); + g_free(cur->away_encoding); if (userinfo->away_len > 0) { - cur->away = (char *)malloc(userinfo->away_len); + cur->away = (char *)g_malloc(userinfo->away_len); memcpy(cur->away, userinfo->away, userinfo->away_len); } else cur->away = NULL; - cur->away_encoding = strdup(userinfo->away_encoding); + cur->away_encoding = g_strdup(userinfo->away_encoding); cur->away_len = userinfo->away_len; } else if (!(userinfo->flags & AIM_FLAG_AWAY)) { @@ -326,11 +326,11 @@ * If the user is not away, clear any cached away message now. */ if (cur->away) { - free(cur->away); + g_free(cur->away); cur->away = NULL; } if (cur->away_encoding) { - free(cur->away_encoding); + g_free(cur->away_encoding); cur->away_encoding = NULL; } cur->away_len = 0; @@ -401,8 +401,8 @@ del = od->locate.requested; od->locate.requested = del->next; was_explicit = FALSE; - free(del->sn); - free(del); + g_free(del->sn); + g_free(del); } cur = od->locate.requested; @@ -411,8 +411,8 @@ del = cur->next; cur->next = del->next; was_explicit = FALSE; - free(del->sn); - free(del); + g_free(del->sn); + g_free(del); } else cur = cur->next; } @@ -447,8 +447,8 @@ } /* Add a new node to our request queue */ - cur = (struct userinfo_node *)malloc(sizeof(struct userinfo_node)); - cur->sn = strdup(sn); + cur = (struct userinfo_node *)g_malloc(sizeof(struct userinfo_node)); + cur->sn = g_strdup(sn); cur->next = od->locate.torequest; od->locate.torequest = cur; @@ -502,7 +502,7 @@ cap[10], cap[11], cap[12], cap[13], cap[14], cap[15]); - free(cap); + g_free(cap); } return flags; @@ -531,7 +531,7 @@ if (!identified) purple_debug_misc("oscar", "unknown short capability: {%02x%02x}\n", cap[0], cap[1]); - free(cap); + g_free(cap); } return flags; @@ -586,16 +586,16 @@ void aim_info_free(aim_userinfo_t *info) { - free(info->sn); - free(info->iconcsum); - free(info->info); - free(info->info_encoding); - free(info->status); - free(info->status_encoding); - free(info->itmsurl); - free(info->itmsurl_encoding); - free(info->away); - free(info->away_encoding); + g_free(info->sn); + g_free(info->iconcsum); + g_free(info->info); + g_free(info->info_encoding); + g_free(info->status); + g_free(info->status_encoding); + g_free(info->itmsurl); + g_free(info->itmsurl_encoding); + g_free(info->away); + g_free(info->away_encoding); } /* @@ -829,7 +829,7 @@ case 0x0001: { /* A buddy icon checksum */ if ((length2 > 0) && ((number == 0x00) || (number == 0x01))) { - free(outinfo->iconcsum); + g_free(outinfo->iconcsum); outinfo->iconcsumtype = number; outinfo->iconcsum = byte_stream_getraw(bs, length2); outinfo->iconcsumlen = length2; @@ -838,8 +838,8 @@ } break; case 0x0002: { /* A status/available message */ - free(outinfo->status); - free(outinfo->status_encoding); + g_free(outinfo->status); + g_free(outinfo->status_encoding); if (length2 >= 4) { outinfo->status_len = byte_stream_get16(bs); outinfo->status = byte_stream_getstr(bs, outinfo->status_len); @@ -859,8 +859,8 @@ } break; case 0x0009: { /* An iTunes Music Store link */ - free(outinfo->itmsurl); - free(outinfo->itmsurl_encoding); + g_free(outinfo->itmsurl); + g_free(outinfo->itmsurl_encoding); if (length2 >= 4) { outinfo->itmsurl_len = byte_stream_get16(bs); outinfo->itmsurl = byte_stream_getstr(bs, outinfo->itmsurl_len); @@ -1013,8 +1013,8 @@ ret = userfunc(od, conn, frame, reason, sn); if (snac2) - free(snac2->data); - free(snac2); + g_free(snac2->data); + g_free(snac2); return ret; } @@ -1113,11 +1113,11 @@ /* Build the packet first to get real length */ if (profile) { /* no + 1 here because of %s */ - encoding = malloc(strlen(defencoding) + strlen(profile_encoding)); + encoding = g_malloc(strlen(defencoding) + strlen(profile_encoding)); snprintf(encoding, strlen(defencoding) + strlen(profile_encoding), defencoding, profile_encoding); aim_tlvlist_add_str(&tl, 0x0001, encoding); aim_tlvlist_add_raw(&tl, 0x0002, profile_len, (const guchar *)profile); - free(encoding); + g_free(encoding); } /* @@ -1130,11 +1130,11 @@ */ if (awaymsg) { if (awaymsg_len) { - encoding = malloc(strlen(defencoding) + strlen(awaymsg_encoding)); + encoding = g_malloc(strlen(defencoding) + strlen(awaymsg_encoding)); snprintf(encoding, strlen(defencoding) + strlen(awaymsg_encoding), defencoding, awaymsg_encoding); aim_tlvlist_add_str(&tl, 0x0003, encoding); aim_tlvlist_add_raw(&tl, 0x0004, awaymsg_len, (const guchar *)awaymsg); - free(encoding); + g_free(encoding); } else aim_tlvlist_add_noval(&tl, 0x0004); } @@ -1225,14 +1225,14 @@ aim_tlv_t *tlv = NULL; int was_explicit; - userinfo = (aim_userinfo_t *)malloc(sizeof(aim_userinfo_t)); + userinfo = (aim_userinfo_t *)g_malloc(sizeof(aim_userinfo_t)); aim_info_extract(od, bs, userinfo); tlvlist = aim_tlvlist_read(bs); /* Profile will be 1 and 2 */ userinfo->info_encoding = aim_tlv_getstr(tlvlist, 0x0001, 1); if ((tlv = aim_tlv_gettlv(tlvlist, 0x0002, 1))) { - userinfo->info = (char *)malloc(tlv->length); + userinfo->info = (char *)g_malloc(tlv->length); memcpy(userinfo->info, tlv->value, tlv->length); userinfo->info_len = tlv->length; } @@ -1240,7 +1240,7 @@ /* Away message will be 3 and 4 */ userinfo->away_encoding = aim_tlv_getstr(tlvlist, 0x0003, 1); if ((tlv = aim_tlv_gettlv(tlvlist, 0x0004, 1))) { - userinfo->away = (char *)malloc(tlv->length); + userinfo->away = (char *)g_malloc(tlv->length); memcpy(userinfo->away, tlv->value, tlv->length); userinfo->away_len = tlv->length; } @@ -1257,7 +1257,7 @@ aim_locate_adduserinfo(od, userinfo); userinfo2 = aim_locate_finduserinfo(od, userinfo->sn); aim_info_free(userinfo); - free(userinfo); + g_free(userinfo); /* * Remove this screen name from our queue. If the client requested @@ -1454,7 +1454,7 @@ del = od->locate.userinfo; od->locate.userinfo = od->locate.userinfo->next; aim_info_free(del); - free(del); + g_free(del); } }
--- a/libpurple/protocols/oscar/family_odir.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_odir.c Wed May 23 06:28:36 2007 +0000 @@ -190,7 +190,7 @@ while (numresults) { struct aim_odir *new; aim_tlvlist_t *tl = aim_tlvlist_readnum(bs, byte_stream_get16(bs)); - new = (struct aim_odir *)malloc(sizeof(struct aim_odir)); + new = (struct aim_odir *)g_malloc(sizeof(struct aim_odir)); new->first = aim_tlv_getstr(tl, 0x0001, 1); new->last = aim_tlv_getstr(tl, 0x0002, 1); new->middle = aim_tlv_getstr(tl, 0x0003, 1); @@ -217,21 +217,21 @@ while (results) { struct aim_odir *del = results; results = results->next; - free(del->first); - free(del->last); - free(del->middle); - free(del->maiden); - free(del->email); - free(del->country); - free(del->state); - free(del->city); - free(del->sn); - free(del->interest); - free(del->nick); - free(del->zip); - free(del->region); - free(del->address); - free(del); + g_free(del->first); + g_free(del->last); + g_free(del->middle); + g_free(del->maiden); + g_free(del->email); + g_free(del->country); + g_free(del->state); + g_free(del->city); + g_free(del->sn); + g_free(del->interest); + g_free(del->nick); + g_free(del->zip); + g_free(del->region); + g_free(del->address); + g_free(del); } return ret;
--- a/libpurple/protocols/oscar/family_oservice.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_oservice.c Wed May 23 06:28:36 2007 +0000 @@ -194,12 +194,12 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, &redir); - free((void *)redir.ip); - free((void *)redir.cookie); + g_free((void *)redir.ip); + g_free((void *)redir.cookie); if (origsnac) - free(origsnac->data); - free(origsnac); + g_free(origsnac->data); + g_free(origsnac); aim_tlvlist_free(&tlvlist); @@ -588,7 +588,7 @@ conn = flap_connection_findbygroup(od, SNAC_FAMILY_BOS); if(!conn) return; - + aim_genericreq_l(od, conn, 0x0001, 0x0011, &idletime); } @@ -641,7 +641,7 @@ ret = userfunc(od, conn, frame, ip, cktlv ? cktlv->value : NULL); aim_tlvlist_free(&tl); - free(ip); + g_free(ip); return ret; } @@ -679,7 +679,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, id, msg); - free(msg); + g_free(msg); aim_tlvlist_free(&tlvlist); @@ -769,7 +769,7 @@ /* This is frivolous. (Thank you SmarterChild.) */ vercount = byte_stream_empty(bs)/4; versions = byte_stream_getraw(bs, byte_stream_empty(bs)); - free(versions); + g_free(versions); /* * Now request rates. @@ -927,7 +927,7 @@ if ((userfunc = aim_callhandler(od, snac->family, snac->subtype))) ret = userfunc(od, conn, frame, offset, len, modname); - free(modname); + g_free(modname); aim_tlvlist_free(&list); return ret; @@ -1051,13 +1051,13 @@ /* not sure what the difference between 1 and 0 is */ guint8 *md5 = byte_stream_getraw(bs, length); ret = userfunc(od, conn, frame, type, flags, length, md5); - free(md5); + g_free(md5); } break; case 0x0002: { /* available message */ /* there is a second length that is just for the message */ char *msg = byte_stream_getstr(bs, byte_stream_get16(bs)); ret = userfunc(od, conn, frame, msg); - free(msg); + g_free(msg); } break; } }
--- a/libpurple/protocols/oscar/family_popup.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_popup.c Wed May 23 06:28:36 2007 +0000 @@ -54,8 +54,8 @@ ret = userfunc(od, conn, frame, msg, url, width, height, delay); aim_tlvlist_free(&tl); - free(msg); - free(url); + g_free(msg); + g_free(url); return ret; }
--- a/libpurple/protocols/oscar/family_userlookup.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/family_userlookup.c Wed May 23 06:28:36 2007 +0000 @@ -49,8 +49,8 @@ /* XXX freesnac()? */ if (snac2) - free(snac2->data); - free(snac2); + g_free(snac2->data); + g_free(snac2); return ret; } @@ -107,14 +107,14 @@ */ while ((cur = aim_tlv_getstr(tlvlist, 0x0001, j+1)) && j < m) { - buf = realloc(buf, (j+1) * (MAXSNLEN+1)); + buf = g_realloc(buf, (j+1) * (MAXSNLEN+1)); strncpy(&buf[j * (MAXSNLEN+1)], cur, MAXSNLEN); - free(cur); + g_free(cur); j++; } - free(cur); + g_free(cur); aim_tlvlist_free(&tlvlist); @@ -123,10 +123,10 @@ /* XXX freesnac()? */ if (snac2) - free(snac2->data); - free(snac2); + g_free(snac2->data); + g_free(snac2); - free(buf); + g_free(buf); return ret; }
--- a/libpurple/protocols/oscar/flap_connection.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/flap_connection.c Wed May 23 06:28:36 2007 +0000 @@ -723,7 +723,7 @@ aim_tlvlist_free(&tlvlist); - free(msg); + g_free(msg); } /**
--- a/libpurple/protocols/oscar/misc.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/misc.c Wed May 23 06:28:36 2007 +0000 @@ -128,8 +128,8 @@ ret = userfunc(od, conn, frame, error, snac2 ? snac2->data : NULL); if (snac2) - free(snac2->data); - free(snac2); + g_free(snac2->data); + g_free(snac2); return ret; }
--- a/libpurple/protocols/oscar/msgcookie.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/msgcookie.c Wed May 23 06:28:36 2007 +0000 @@ -113,7 +113,7 @@ if (!c) return NULL; - cookie = calloc(1, sizeof(IcbmCookie)); + cookie = g_new0(IcbmCookie, 1); cookie->data = data; cookie->type = type; @@ -172,8 +172,8 @@ prev = &cur->next; } - free(cookie->data); - free(cookie); + g_free(cookie->data); + g_free(cookie); return 0; }
--- a/libpurple/protocols/oscar/oft.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/oft.c Wed May 23 06:28:36 2007 +0000 @@ -568,7 +568,7 @@ break; } - free(frame.name); + g_free(frame.name); } /*******************************************************************/
--- a/libpurple/protocols/oscar/rxhandlers.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/rxhandlers.c Wed May 23 06:28:36 2007 +0000 @@ -55,14 +55,14 @@ mod = g_new0(aim_module_t, 1); if (modfirst(od, mod) == -1) { - free(mod); + g_free(mod); return -1; } if (aim__findmodule(od, mod->name)) { if (mod->shutdown) mod->shutdown(od, mod); - free(mod); + g_free(mod); return -1; } @@ -86,7 +86,7 @@ if (cur->shutdown) cur->shutdown(od, cur); - free(cur); + g_free(cur); cur = tmp; }
--- a/libpurple/protocols/oscar/snac.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/snac.c Wed May 23 06:28:36 2007 +0000 @@ -57,7 +57,7 @@ snac.flags = flags; if (datalen) { - if (!(snac.data = malloc(datalen))) + if (!(snac.data = g_malloc(datalen))) return 0; /* er... */ memcpy(snac.data, data, datalen); } else @@ -78,7 +78,7 @@ if (!newsnac) return 0; - if (!(snac = malloc(sizeof(aim_snac_t)))) + if (!(snac = g_malloc(sizeof(aim_snac_t)))) return 0; memcpy(snac, newsnac, sizeof(aim_snac_t)); snac->issuetime = time(NULL); @@ -109,7 +109,7 @@ if (cur->id == id) { *prev = cur->next; if (cur->flags & AIM_SNACFLAGS_DESTRUCTOR) { - free(cur->data); + g_free(cur->data); cur->data = NULL; } return cur; @@ -145,8 +145,8 @@ *prev = cur->next; - free(cur->data); - free(cur); + g_free(cur->data); + g_free(cur); } else prev = &cur->next; }
--- a/libpurple/protocols/oscar/tlv.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/tlv.c Wed May 23 06:28:36 2007 +0000 @@ -41,8 +41,8 @@ if (!oldtlv || !*oldtlv) return; - free((*oldtlv)->value); - free(*oldtlv); + g_free((*oldtlv)->value); + g_free(*oldtlv); *oldtlv = NULL; return; @@ -103,7 +103,7 @@ cur->tlv->value = byte_stream_getraw(bs, length); if (!cur->tlv->value) { freetlv(&cur->tlv); - free(cur); + g_free(cur); aim_tlvlist_free(&list); return NULL; } @@ -159,7 +159,7 @@ cur->tlv->value = byte_stream_getraw(bs, length); if (!cur->tlv->value) { freetlv(&cur->tlv); - free(cur); + g_free(cur); aim_tlvlist_free(&list); return NULL; } @@ -216,7 +216,7 @@ cur->tlv->value = byte_stream_getraw(bs, length); if (!cur->tlv->value) { freetlv(&cur->tlv); - free(cur); + g_free(cur); aim_tlvlist_free(&list); return NULL; } @@ -271,8 +271,8 @@ aim_tlvlist_write(&bs2, &two); if (memcmp(bs1.data, bs2.data, bs1.len)) { - free(bs1.data); - free(bs2.data); + g_free(bs1.data); + g_free(bs2.data); return 1; } @@ -304,7 +304,7 @@ freetlv(&cur->tlv); tmp = cur->next; - free(cur); + g_free(cur); cur = tmp; } @@ -600,7 +600,7 @@ if (cur == NULL) return aim_tlvlist_add_raw(list, type, length, value); - free(cur->tlv->value); + g_free(cur->tlv->value); cur->tlv->length = length; if (cur->tlv->length > 0) { cur->tlv->value = g_memdup(value, length); @@ -705,9 +705,9 @@ } /* Free the removed item */ - free(del->tlv->value); - free(del->tlv); - free(del); + g_free(del->tlv->value); + g_free(del->tlv); + g_free(del); } /** @@ -808,7 +808,7 @@ { char *ret; - ret = malloc(tlv->length + 1); + ret = g_malloc(tlv->length + 1); memcpy(ret, tlv->value, tlv->length); ret[tlv->length] = '\0';
--- a/libpurple/protocols/oscar/util.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/protocols/oscar/util.c Wed May 23 06:28:36 2007 +0000 @@ -101,14 +101,14 @@ next = strchr(last, dl); if (curCount < theindex) { - toReturn = malloc(sizeof(char)); + toReturn = g_malloc(sizeof(char)); *toReturn = '\0'; } else { if (next == NULL) { - toReturn = malloc((strlen(last) + 1) * sizeof(char)); + toReturn = g_malloc((strlen(last) + 1) * sizeof(char)); strcpy(toReturn, last); } else { - toReturn = malloc((next - last + 1) * sizeof(char)); + toReturn = g_malloc((next - last + 1) * sizeof(char)); memcpy(toReturn, last, (next - last)); toReturn[next - last] = '\0'; }
--- a/libpurple/purple-url-handler Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/purple-url-handler Wed May 23 06:28:36 2007 +0000 @@ -38,257 +38,6 @@ cpurple = CheckedObject(purple) -def extendlist(list, length, fill): - if len(list) < length: - return list + [fill] * (length - len(list)) - else: - return list - -def convert(value): - try: - return int(value) - except: - return value - -def findaccount(protocolname, accountname=""): - # prefer connected accounts - account = cpurple.PurpleAccountsFindConnected(accountname, protocolname) - if (account != 0): - return account - - # try to get any account and connect it - account = cpurple.PurpleAccountsFindAny(accountname, protocolname) - if (account == 0): - print "No matching account found." - sys.exit(1) - - purple.PurpleAccountSetStatusVargs(account, "online", 1) - purple.PurpleAccountConnect(account) - return account - -def goim(account, screenname, message=None): - # XXX: 1 == PURPLE_CONV_TYPE_IM - conversation = cpurple.PurpleConversationNew(1, account, screenname) - if message: - purple.PurpleConvSendConfirm(conversation, message) - -def gochat(account, params, message=None): - connection = cpurple.PurpleAccountGetConnection(account) - purple.ServJoinChat(connection, params) - - if message != None: - for i in range(20): - # XXX: 2 == PURPLE_CONV_TYPE_CHAT - conversation = purple.PurpleFindConversationWithAccount(2, params.get("channel", params.get("room")), account) - if conversation: - purple.PurpleConvSendConfirm(conversation, message) - break - else: - time.sleep(0.5) - -def addbuddy(account, screenname, group="", alias=""): - cpurple.PurpleBlistRequestAddBuddy(account, screenname, group, alias) - - -def aim(uri): - protocol = "prpl-aim" - match = re.match(r"^aim:([^?]*)(\?(.*))", uri) - if not match: - print "Invalid aim URI: %s" % uri - return - - command = urllib.unquote_plus(match.group(1)) - paramstring = match.group(3) - params = {} - if paramstring: - for param in paramstring.split("&"): - key, value = extendlist(param.split("=", 1), 2, "") - params[key] = urllib.unquote_plus(value) - accountname = params.get("account", "") - screenname = params.get("screenname", "") - - account = findaccount(protocol, accountname) - - if command.lower() == "goim": - goim(account, screenname, params.get("message")) - elif command.lower() == "gochat": - gochat(account, params) - elif command.lower() == "addbuddy": - addbuddy(account, screenname, params.get("group", "")) - -def gg(uri): - protocol = "prpl-gg" - match = re.match(r"^gg:(.*)", uri) - if not match: - print "Invalid gg URI: %s" % uri - return - - screenname = urllib.unquote_plus(match.group(1)) - account = findaccount(protocol) - goim(account, screenname) - -def icq(uri): - protocol = "prpl-icq" - match = re.match(r"^icq:([^?]*)(\?(.*))", uri) - if not match: - print "Invalid icq URI: %s" % uri - return - - command = urllib.unquote_plus(match.group(1)) - paramstring = match.group(3) - params = {} - if paramstring: - for param in paramstring.split("&"): - key, value = extendlist(param.split("=", 1), 2, "") - params[key] = urllib.unquote_plus(value) - accountname = params.get("account", "") - screenname = params.get("screenname", "") - - account = findaccount(protocol, accountname) - - if command.lower() == "goim": - goim(account, screenname, params.get("message")) - elif command.lower() == "gochat": - gochat(account, params) - elif command.lower() == "addbuddy": - addbuddy(account, screenname, params.get("group", "")) - -def irc(uri): - protocol = "prpl-irc" - match = re.match(r"^irc:(//([^/]*)/)?([^?]*)(\?(.*))?", uri) - if not match: - print "Invalid irc URI: %s" % uri - return - - server = urllib.unquote_plus(match.group(2)) or "" - target = match.group(3) or "" - query = match.group(5) or "" - - modifiers = {} - if target: - for modifier in target.split(",")[1:]: - modifiers[modifier] = True - - isnick = modifiers.has_key("isnick") - - paramstring = match.group(5) - params = {} - if paramstring: - for param in paramstring.split("&"): - key, value = extendlist(param.split("=", 1), 2, "") - params[key] = urllib.unquote_plus(value) - - account = findaccount(protocol) - - if (target != ""): - if (isnick): - goim(account, urllib.unquote_plus(target.split(",")[0]), params.get("msg")) - else: - channel = urllib.unquote_plus(target.split(",")[0]) - if channel[0] != "#": - channel = "#" + channel - gochat(account, {"server": server, "channel": channel, "password": params.get("key", "")}, params.get("msg")) - -def msnim(uri): - protocol = "prpl-msn" - match = re.match(r"^msnim:([^?]*)(\?(.*))", uri) - if not match: - print "Invalid msnim URI: %s" % uri - return - - command = urllib.unquote_plus(match.group(1)) - paramstring = match.group(3) - params = {} - if paramstring: - for param in paramstring.split("&"): - key, value = extendlist(param.split("=", 1), 2, "") - params[key] = urllib.unquote_plus(value) - screenname = params.get("contact", "") - - account = findaccount(protocol) - - if command.lower() == "chat": - goim(account, screenname) - elif command.lower() == "add": - addbuddy(account, screenname) - -def sip(uri): - protocol = "prpl-simple" - match = re.match(r"^sip:(.*)", uri) - if not match: - print "Invalid sip URI: %s" % uri - return - - screenname = urllib.unquote_plus(match.group(1)) - account = findaccount(protocol) - goim(account, screenname) - -def xmpp(uri): - protocol = "prpl-jabber" - match = re.match(r"^xmpp:(//([^/?#]*)/?)?([^?#]*)(\?([^;#]*)(;([^#]*))?)?(#(.*))?", uri) - if not match: - print "Invalid xmpp URI: %s" % uri - return - - tmp = match.group(2) - if (tmp): - accountname = urllib.unquote_plus(tmp) - else: - accountname = "" - - screenname = urllib.unquote_plus(match.group(3)) - - tmp = match.group(5) - if (tmp): - command = urllib.unquote_plus(tmp) - else: - command = "" - - paramstring = match.group(7) - params = {} - if paramstring: - for param in paramstring.split(";"): - key, value = extendlist(param.split("=", 1), 2, "") - params[key] = urllib.unquote_plus(value) - - account = findaccount(protocol, accountname) - - if command.lower() == "message": - goim(account, screenname, params.get("body")) - elif command.lower() == "join": - room, server = screenname.split("@") - gochat(account, {"room": room, "server": server}) - elif command.lower() == "roster": - addbuddy(account, screenname, params.get("group", ""), params.get("name", "")) - else: - goim(account, screenname) - -def ymsgr(uri): - protocol = "prpl-yahoo" - match = re.match(r"^ymsgr:([^?]*)(\?([^&]*)(&(.*))?)", uri) - if not match: - print "Invalid ymsgr URI: %s" % uri - return - - command = urllib.unquote_plus(match.group(1)) - screenname = urllib.unquote_plus(match.group(3)) - paramstring = match.group(5) - params = {} - if paramstring: - for param in paramstring.split("&"): - key, value = extendlist(param.split("=", 1), 2, "") - params[key] = urllib.unquote_plus(value) - - account = findaccount(protocol) - - if command.lower() == "sendim": - goim(account, screenname, params.get("m")) - elif command.lower() == "chat": - gochat(account, {"room": screenname}) - elif command.lower() == "addfriend": - addbuddy(account, screenname) - - def main(argv=sys.argv): if len(argv) != 2: print "Usage: %s URI" % argv[0] @@ -296,27 +45,10 @@ return uri = argv[1] - type = uri.split(":")[0] + print uri try: - if type == "aim": - aim(uri) - elif type == "gg": - gg(uri) - elif type == "icq": - icq(uri) - elif type == "irc": - irc(uri) - elif type == "msnim": - msnim(uri) - elif type == "sip": - sip(uri) - elif type == "xmpp": - xmpp(uri) - elif type == "ymsgr": - ymsgr(uri) - else: - print "Unkown protocol: %s" % type + cpurple.PurpleGotProtocolHandlerUri(uri) except dbus.dbus_bindings.DBusException: print "ERROR: Is there a libpurple-powered client (e.g. Pidgin or Finch) running?"
--- a/libpurple/util.c Wed May 23 06:24:15 2007 +0000 +++ b/libpurple/util.c Wed May 23 06:28:36 2007 +0000 @@ -3159,10 +3159,13 @@ keyend = tmp; if (keyend && keyend != pairstart) { + char *p; key = g_strndup(pairstart, (keyend - pairstart)); /* If there is an explicit value */ if (keyend != tmp && keyend != (tmp - 1)) value = g_strndup(keyend + 1, (tmp - keyend - 1)); + for (p = key; *p; ++p) + *p = g_ascii_tolower(*p); g_hash_table_insert(params, key, value); } keyend = value = NULL;
--- a/pidgin/gtkdialogs.c Wed May 23 06:24:15 2007 +0000 +++ b/pidgin/gtkdialogs.c Wed May 23 06:28:36 2007 +0000 @@ -378,13 +378,8 @@ g_string_append(str, "<FONT SIZE=\"4\">URL:</FONT> <A HREF=\"" PURPLE_WEBSITE "\">" PURPLE_WEBSITE "</A><BR/><BR/>"); -#ifdef _WIN32 - g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC:</FONT> " - "#pidgin-win32 on irc.freenode.net<BR><BR>")); -#else g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC:</FONT> " "#pidgin on irc.freenode.net<BR><BR>")); -#endif /* Current Developers */ g_string_append_printf(str, "<FONT SIZE=\"4\">%s:</FONT><BR/>",
--- a/pidgin/gtkimhtml.c Wed May 23 06:24:15 2007 +0000 +++ b/pidgin/gtkimhtml.c Wed May 23 06:28:36 2007 +0000 @@ -932,52 +932,41 @@ static void copy_clipboard_cb(GtkIMHtml *imhtml, gpointer unused) { GtkTextIter start, end; - GtkTextMark *sel = gtk_text_buffer_get_selection_bound(imhtml->text_buffer); - GtkTextMark *ins = gtk_text_buffer_get_insert(imhtml->text_buffer); - - gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &start, sel); - gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &end, ins); - - gtk_clipboard_set_with_owner(gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_CLIPBOARD), - selection_targets, sizeof(selection_targets) / sizeof(GtkTargetEntry), - (GtkClipboardGetFunc)gtk_imhtml_clipboard_get, - (GtkClipboardClearFunc)NULL, G_OBJECT(imhtml)); - - if (imhtml->clipboard_html_string) { + if (gtk_text_buffer_get_selection_bounds(imhtml->text_buffer, &start, &end)) { + gtk_clipboard_set_with_owner(gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_CLIPBOARD), + selection_targets, sizeof(selection_targets) / sizeof(GtkTargetEntry), + (GtkClipboardGetFunc)gtk_imhtml_clipboard_get, + (GtkClipboardClearFunc)NULL, G_OBJECT(imhtml)); + g_free(imhtml->clipboard_html_string); g_free(imhtml->clipboard_text_string); + + imhtml->clipboard_html_string = gtk_imhtml_get_markup_range(imhtml, &start, &end); + imhtml->clipboard_text_string = gtk_imhtml_get_text(imhtml, &start, &end); } - imhtml->clipboard_html_string = gtk_imhtml_get_markup_range(imhtml, &start, &end); - imhtml->clipboard_text_string = gtk_imhtml_get_text(imhtml, &start, &end); - g_signal_stop_emission_by_name(imhtml, "copy-clipboard"); } static void cut_clipboard_cb(GtkIMHtml *imhtml, gpointer unused) { GtkTextIter start, end; - GtkTextMark *sel = gtk_text_buffer_get_selection_bound(imhtml->text_buffer); - GtkTextMark *ins = gtk_text_buffer_get_insert(imhtml->text_buffer); - - gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &start, sel); - gtk_text_buffer_get_iter_at_mark(imhtml->text_buffer, &end, ins); - - gtk_clipboard_set_with_owner(gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_CLIPBOARD), - selection_targets, sizeof(selection_targets) / sizeof(GtkTargetEntry), - (GtkClipboardGetFunc)gtk_imhtml_clipboard_get, - (GtkClipboardClearFunc)NULL, G_OBJECT(imhtml)); - - if (imhtml->clipboard_html_string) { + if (gtk_text_buffer_get_selection_bounds(imhtml->text_buffer, &start, &end)) { + gtk_clipboard_set_with_owner(gtk_widget_get_clipboard(GTK_WIDGET(imhtml), GDK_SELECTION_CLIPBOARD), + selection_targets, sizeof(selection_targets) / sizeof(GtkTargetEntry), + (GtkClipboardGetFunc)gtk_imhtml_clipboard_get, + (GtkClipboardClearFunc)NULL, G_OBJECT(imhtml)); + g_free(imhtml->clipboard_html_string); g_free(imhtml->clipboard_text_string); + + imhtml->clipboard_html_string = gtk_imhtml_get_markup_range(imhtml, &start, &end); + imhtml->clipboard_text_string = gtk_imhtml_get_text(imhtml, &start, &end); + + if (imhtml->editable) + gtk_text_buffer_delete_selection(imhtml->text_buffer, FALSE, FALSE); } - imhtml->clipboard_html_string = gtk_imhtml_get_markup_range(imhtml, &start, &end); - imhtml->clipboard_text_string = gtk_imhtml_get_text(imhtml, &start, &end); - - if (imhtml->editable) - gtk_text_buffer_delete_selection(imhtml->text_buffer, FALSE, FALSE); g_signal_stop_emission_by_name(imhtml, "cut-clipboard"); }
--- a/pidgin/gtkprefs.c Wed May 23 06:24:15 2007 +0000 +++ b/pidgin/gtkprefs.c Wed May 23 06:28:36 2007 +0000 @@ -1602,6 +1602,7 @@ #ifdef USE_GSTREAMER _("Automatic"), "automatic", "ESD", "esd", + "ALSA", "alsa", #endif _("Command"), "custom", _("No sounds"), "none",
--- a/pidgin/gtksound.c Wed May 23 06:24:15 2007 +0000 +++ b/pidgin/gtksound.c Wed May 23 06:28:36 2007 +0000 @@ -466,6 +466,12 @@ purple_debug_error("sound", "Unable to create GStreamer audiosink.\n"); return; } + } else if (!strcmp(method, "alsa")) { + sink = gst_element_factory_make("alsasink", "sink"); + if (!sink) { + purple_debug_error("sound", "Unable to create GStreamer audiosink.\n"); + return; + } } else { purple_debug_error("sound", "Unknown sound method '%s'\n", method); return;
--- a/pidgin/win32/nsis/pidgin-installer.nsi Wed May 23 06:24:15 2007 +0000 +++ b/pidgin/win32/nsis/pidgin-installer.nsi Wed May 23 06:28:36 2007 +0000 @@ -519,8 +519,7 @@ SectionEnd Section $(PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE) SecStartMenuShortcut SetOverwrite on - CreateDirectory "$SMPROGRAMS\Pidgin" - CreateShortCut "$SMPROGRAMS\Pidgin\Pidgin.lnk" "$INSTDIR\pidgin.exe" + CreateShortCut "$SMPROGRAMS\Pidgin.lnk" "$INSTDIR\pidgin.exe" SetOverwrite off SectionEnd SectionGroupEnd @@ -750,7 +749,6 @@ RMDir "$INSTDIR" ; Shortcuts.. - RMDir /r "$SMPROGRAMS\Pidgin" Delete "$DESKTOP\Pidgin.lnk" Goto done