diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2008-01-30 23:05:52 +0000 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2008-01-30 23:05:52 +0000 | 
| commit | f774e01cdb34e339455671f51413ecdc6de3208d (patch) | |
| tree | 544204b2e0924ac45d911e5f37eef540facd40d0 /protocols | |
| parent | b5c8a34aeff244ffe7a9f4bd5edf827495d0deea (diff) | |
Fixed handling of OSCAR multi-part messages... They're not arrays, they're
linked lists!
Diffstat (limited to 'protocols')
| -rw-r--r-- | protocols/oscar/oscar.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/protocols/oscar/oscar.c b/protocols/oscar/oscar.c index 30ad4b68..9e5de70a 100644 --- a/protocols/oscar/oscar.c +++ b/protocols/oscar/oscar.c @@ -1065,12 +1065,14 @@ static int incomingim_chan1(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_  	} else if (args->mpmsg.numparts == 0) {  		g_snprintf(tmp, BUF_LONG, "%s", args->msg);  	} else { -		int i; +		aim_mpmsg_section_t *part;  		*tmp = 0; -		for (i = 0; i < args->mpmsg.numparts; i ++) { -			g_strlcat(tmp, (char*) args->mpmsg.parts[i].data, BUF_LONG); -			g_strlcat(tmp, "\n", BUF_LONG); +		for (part = args->mpmsg.parts; part; part = part->next) { +			if (part->data) { +				g_strlcat(tmp, (char*) part->data, BUF_LONG); +				g_strlcat(tmp, "\n", BUF_LONG); +			}  		}  	} | 
