diff options
author | Eion Robb <eionrobb@gmail.com> | 2017-02-19 03:13:47 +0000 |
---|---|---|
committer | Eion Robb <eionrobb@gmail.com> | 2017-02-19 03:13:47 +0000 |
commit | 76bd44beec50fe0ea2be5ec29a8fea35a72c8ba5 (patch) | |
tree | d0a4c86950f32fc95862fce2af990a66b85cc0db | |
parent | df31d3315d20b8e501af60d9b221548961bf8c23 (diff) | |
download | pidgin-76bd44beec50fe0ea2be5ec29a8fea35a72c8ba5.tar.gz |
Fix for crash when sending invalid xml entities separated by whitespace, eg "&# 3000;"
-rw-r--r-- | libpurple/util.c | 4 |
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("'")) pln = "\'"; else if(*(text+1) == '#' && - (sscanf(text, "&#%u%1[;]", £, temp) == 2 || - sscanf(text, "&#x%x%1[;]", £, temp) == 2) && + (sscanf(text, "&#%*[^ ]%u%1[;]", £, temp) == 2 || + sscanf(text, "&#x%*[^ ]%x%1[;]", £, temp) == 2) && pound != 0) { static char buf[7]; int buflen = g_unichar_to_utf8((gunichar)pound, buf); |