aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--protocols/oscar/chatnav.c5
-rw-r--r--protocols/oscar/oscar.c6
-rw-r--r--protocols/oscar/service.c4
3 files changed, 8 insertions, 7 deletions
diff --git a/protocols/oscar/chatnav.c b/protocols/oscar/chatnav.c
index e2de2ff3..1aefd6e7 100644
--- a/protocols/oscar/chatnav.c
+++ b/protocols/oscar/chatnav.c
@@ -199,8 +199,9 @@ static int parseinfo_perms(aim_session_t *sess, aim_module_t *mod, aim_frame_t *
* 2 Exchange creation allowed
*
*/
- if (aim_gettlv(innerlist, 0x00d5, 1))
- ;
+ if (aim_gettlv(innerlist, 0x00d5, 1)) {
+ aim_gettlv8(innerlist, 0x00d5, 1); /* createperms */
+ }
/*
* Type 0x00d6: Character Set (First Time)
diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c
index 41a194ab..de4efb6a 100644
--- a/protocols/oscar/oscar.c
+++ b/protocols/oscar/oscar.c
@@ -2551,6 +2551,7 @@ struct groupchat *oscar_chat_join(struct im_connection *ic, const char *room,
struct groupchat *oscar_chat_with(struct im_connection * ic, char *who)
{
struct oscar_data * od = (struct oscar_data *)ic->proto_data;
+ struct groupchat *ret;
static int chat_id = 0;
char * chatname, *s;
@@ -2561,13 +2562,12 @@ struct groupchat *oscar_chat_with(struct im_connection * ic, char *who)
if (!isalnum(*s))
*s = '0';
- imcb_chat_new(ic, chatname);
- oscar_chat_join_internal(ic, chatname, NULL, NULL, 4);
+ ret = oscar_chat_join_internal(ic, chatname, NULL, NULL, 4);
aim_chat_invite(od->sess, od->conn, who, "", 4, chatname, 0x0);
g_free(chatname);
- return NULL;
+ return ret;
}
void oscar_accept_chat(void *data)
diff --git a/protocols/oscar/service.c b/protocols/oscar/service.c
index d4f516c0..a2678764 100644
--- a/protocols/oscar/service.c
+++ b/protocols/oscar/service.c
@@ -701,7 +701,7 @@ static int hostversions(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx,
guint8 *versions;
/* This is frivolous. (Thank you SmarterChild.) */
- aim_bstream_empty(bs);
+ aim_bstream_empty(bs); /* == vercount * 4 */
versions = aimbs_getraw(bs, aim_bstream_empty(bs));
g_free(versions);
@@ -734,7 +734,7 @@ int aim_setextstatus(aim_session_t *sess, aim_conn_t *conn, guint32 status)
if (ic && set_getbool(&ic->acc->set, "web_aware"))
data |= AIM_ICQ_STATE_WEBAWARE;
- aim_addtlvtochain32(&tl, 0x0006, data);
+ aim_addtlvtochain32(&tl, 0x0006, data); /* tlvlen */
if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10 + 8)))
return -ENOMEM;