summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Wellnhofer <wellnhofer@aevum.de>2023-03-16 17:12:01 +0100
committerNick Wellnhofer <wellnhofer@aevum.de>2023-03-16 17:12:01 +0100
commit5d452a61d3580054c45501f761f233d34b8a29d3 (patch)
tree22ad5953b492959809f25579856b5ec5aaaece7a
parent7c8b2db575f53766d1ba41b45fd6764c6546d849 (diff)
downloadlibxslt-5d452a61d3580054c45501f761f233d34b8a29d3.tar.gz
numbers: Fix memory leak in xsltFormatNumberConversion
Short-lived regression from f13329a6. Found by OSS-Fuzz.
-rw-r--r--libxslt/numbers.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/libxslt/numbers.c b/libxslt/numbers.c
index 8a774a83..e0ae6259 100644
--- a/libxslt/numbers.c
+++ b/libxslt/numbers.c
@@ -993,11 +993,6 @@ xsltFormatNumberConversion(xsltDecimalFormatPtr self,
return(status);
}
- buffer = xmlBufferCreate();
- if (buffer == NULL) {
- return XPATH_MEMORY_ERROR;
- }
-
format_info.integer_hash = 0;
format_info.integer_digits = 0;
format_info.frac_digits = 0;
@@ -1287,6 +1282,11 @@ OUTPUT_NUMBER:
break;
}
+ buffer = xmlBufferCreate();
+ if (buffer == NULL) {
+ return XPATH_MEMORY_ERROR;
+ }
+
/* Ready to output our number. First see if "default sign" is required */
if (default_sign != 0)
xmlBufferAdd(buffer, self->minusSign, xmlUTF8Strsize(self->minusSign, 1));