1 --- workspace/pidgin/libpurple/mime.c 2010-03-27 20:11:19.456986210 +0100
2 +++ src/pidgin-2.6.5/libpurple/mime.c 2010-03-28 15:56:46.300983807 +0200
8 +parse_boundary(const char* ct)
10 + const char BOUNDARY[] = "boundary=";
11 + char *boundary_begin = g_strrstr(ct, BOUNDARY);
13 + gboolean has_quotes = FALSE;
15 + if (!boundary_begin)
18 + boundary_begin += sizeof(BOUNDARY) - 1;
20 + if (*boundary_begin == '"') {
26 + boundary_end = strchr(boundary_begin, '"');
28 + boundary_end = strchr(boundary_begin, ' ');
29 + if (!boundary_end) {
30 + boundary_end = strchr(boundary_begin, ';');
32 + boundary_end = boundary_begin + strlen(boundary_begin);
39 + char *bnd = g_malloc0(boundary_end - boundary_begin + 1);
40 + memcpy(bnd, boundary_begin, boundary_end - boundary_begin);
46 purple_mime_document_parsen(const char *buf, gsize len)
49 const char *ct = fields_get(&doc->fields, "content-type");
50 if(ct && purple_str_has_prefix(ct, "multipart")) {
51 - char *bd = strrchr(ct, '=');
53 + char *bd = parse_boundary(ct);
55 doc_parts_load(doc, bd, b, n);