From 28645973e564a3e3018c00dcd4023e9bfcec471b Mon Sep 17 00:00:00 2001 From: Kalle Olavi Niemitalo Date: Sun, 18 Mar 2007 11:13:38 +0200 Subject: [PATCH] add_html_to_string: If out of memory, roll back and return NULL. --- src/util/conv.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/util/conv.c b/src/util/conv.c index c7ddd66c..6447ed93 100644 --- a/src/util/conv.c +++ b/src/util/conv.c @@ -278,11 +278,18 @@ add_html_to_string(struct string *string, const unsigned char *src, int len) if (*src < 0x20 || *src >= 0x7F || *src == '<' || *src == '>' || *src == '&' || *src == '\"' || *src == '\'') { - add_bytes_to_string(string, "&#", 2); - add_long_to_string(string, (long) *src); - add_char_to_string(string, ';'); + int rollback_length = string->length; + + if (!add_bytes_to_string(string, "&#", 2) + || !add_long_to_string(string, (long) *src) + || !add_char_to_string(string, ';')) { + string->length = rollback_length; + return NULL; + } + } else { - add_char_to_string(string, *src); + if (!add_char_to_string(string, *src)) + return NULL; } }