From 68053b05d15be4ecaf5dd6b6005654d487c602b8 Mon Sep 17 00:00:00 2001 From: Ben Kibbey Date: Fri, 17 Oct 2014 21:45:50 -0400 Subject: [PATCH] Check for error returned from mbsrtowcs(). --- src/util-misc.c | 3 +++ src/xml.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/util-misc.c b/src/util-misc.c index 29ee26a1..1c7541b5 100644 --- a/src/util-misc.c +++ b/src/util-misc.c @@ -560,6 +560,9 @@ wchar_t *str_to_wchar (const char *str) memset (&ps, 0, sizeof(mbstate_t)); len = mbsrtowcs (NULL, &p, 0, &ps); + if (len == -1) + return NULL; + wc = xcalloc (len+1, sizeof(wchar_t)); p = str; memset (&ps, 0, sizeof(mbstate_t)); diff --git a/src/xml.c b/src/xml.c index 49899aef..08038d9c 100644 --- a/src/xml.c +++ b/src/xml.c @@ -88,8 +88,10 @@ valid_xml_element (xmlChar *str) return 0; wc = str_to_wchar ((const char *)str); - len = wcslen (wc); + if (!wc) + return 0; + len = wcslen (wc); for (c = 0; c < len; c++) { if (iswspace(wc[c])) -- 2.11.4.GIT