summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eionrobb@gmail.com>2017-02-19 03:13:47 +0000
committerEion Robb <eionrobb@gmail.com>2017-02-19 03:13:47 +0000
commit76bd44beec50fe0ea2be5ec29a8fea35a72c8ba5 (patch)
treed0a4c86950f32fc95862fce2af990a66b85cc0db
parentdf31d3315d20b8e501af60d9b221548961bf8c23 (diff)
downloadpidgin-76bd44beec50fe0ea2be5ec29a8fea35a72c8ba5.tar.gz
Fix for crash when sending invalid xml entities separated by whitespace, eg "&# 3000;"
-rw-r--r--libpurple/util.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libpurple/util.c b/libpurple/util.c
index 53d065f42e..4a344280d2 100644
--- a/libpurple/util.c
+++ b/libpurple/util.c
@@ -979,8 +979,8 @@ purple_markup_unescape_entity(const char *text, int *length)
else if(IS_ENTITY("&apos;"))
pln = "\'";
else if(*(text+1) == '#' &&
- (sscanf(text, "&#%u%1[;]", &pound, temp) == 2 ||
- sscanf(text, "&#x%x%1[;]", &pound, temp) == 2) &&
+ (sscanf(text, "&#%*[^ ]%u%1[;]", &pound, temp) == 2 ||
+ sscanf(text, "&#x%*[^ ]%x%1[;]", &pound, temp) == 2) &&
pound != 0) {
static char buf[7];
int buflen = g_unichar_to_utf8((gunichar)pound, buf);