Mercurial > pidgin.yaz
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) |