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)