Mercurial > pidgin
changeset 3020:c3a29bd2a2d7
[gaim-migrate @ 3033]
Fixes a segfault in Yahoo, and a disconnection error in MSN.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Thu, 07 Mar 2002 18:53:37 +0000 |
parents | 304e8c376472 |
children | 18f0e61a6caf |
files | src/protocols/msn/msn.c src/protocols/yahoo/yahoo.c |
diffstat | 2 files changed, 10 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/protocols/msn/msn.c Thu Mar 07 07:26:12 2002 +0000 +++ b/src/protocols/msn/msn.c Thu Mar 07 18:53:37 2002 +0000 @@ -1813,6 +1813,11 @@ struct msn_data *md = gc->proto_data; char buf[MSN_BUF_LEN]; + if (strlen(url_encode(entry)) > 387) { + do_error_dialog("Friendly name too long.", "MSN Error"); + return; + } + g_snprintf(buf, sizeof(buf), "REA %d %s %s\r\n", ++md->trId, gc->username, url_encode(entry)); if (msn_write(md->fd, buf, strlen(buf)) < 0) { hide_login_progress(gc, "Write error");
--- a/src/protocols/yahoo/yahoo.c Thu Mar 07 07:26:12 2002 +0000 +++ b/src/protocols/yahoo/yahoo.c Thu Mar 07 18:53:37 2002 +0000 @@ -496,7 +496,7 @@ } else if (!g_strncasecmp(msg, "GAME", strlen("GAME"))) { struct buddy *bud = find_buddy(gc, from); void *free1=NULL, *free2=NULL; - if (!bud) + if (!bud) debug_printf("%s is playing a game, and doesn't want you to know.\n"); if (*stat == '1') { if (g_hash_table_lookup_extended (yd->games, from, free1, free2)) { @@ -504,14 +504,16 @@ g_free(free2); } g_hash_table_insert (yd->games, g_strdup(from), g_strdup(game)); - serv_got_update(gc, from, 1, 0, 0, 0, bud->uc | YAHOO_STATUS_GAME, 0); + if (bud) + serv_got_update(gc, from, 1, 0, 0, 0, bud->uc | YAHOO_STATUS_GAME, 0); } else { if (g_hash_table_lookup_extended (yd->games, from, free1, free2)) { g_free(free1); g_free(free2); g_hash_table_remove (yd->games, from); } - serv_got_update(gc, from, 1, 0, 0, 0, bud->uc & ~YAHOO_STATUS_GAME, 0); + if (bud) + serv_got_update(gc, from, 1, 0, 0, 0, bud->uc & ~YAHOO_STATUS_GAME, 0); } } }