Mercurial > pidgin
comparison src/xmlnode.c @ 11705:0906a3e9626c
[gaim-migrate @ 13996]
Protect against a size variable overflow in xmlnode_from_str.
committer: Tailor Script <tailor@pidgin.im>
| author | Richard Laager <rlaager@wiktel.com> |
|---|---|
| date | Fri, 21 Oct 2005 19:03:34 +0000 |
| parents | 869cef00a947 |
| children | da44f68fb4d2 |
comparison
equal
deleted
inserted
replaced
| 11704:96a9462583c1 | 11705:0906a3e9626c |
|---|---|
| 410 GMarkupParseContext *context; | 410 GMarkupParseContext *context; |
| 411 gsize real_size; | 411 gsize real_size; |
| 412 | 412 |
| 413 g_return_val_if_fail(str != NULL, NULL); | 413 g_return_val_if_fail(str != NULL, NULL); |
| 414 | 414 |
| 415 real_size = size == -1 ? strlen(str) : size; | 415 real_size = size < 0 ? strlen(str) : size; |
| 416 xpd = g_new0(struct _xmlnode_parser_data, 1); | 416 xpd = g_new0(struct _xmlnode_parser_data, 1); |
| 417 context = g_markup_parse_context_new(&xmlnode_parser, 0, xpd, NULL); | 417 context = g_markup_parse_context_new(&xmlnode_parser, 0, xpd, NULL); |
| 418 | 418 |
| 419 if(!g_markup_parse_context_parse(context, str, real_size, NULL)) { | 419 if(!g_markup_parse_context_parse(context, str, real_size, NULL)) { |
| 420 while(xpd->current && xpd->current->parent) | 420 while(xpd->current && xpd->current->parent) |
