summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2017-10-28 16:44:32 +0200
committerNikita Popov <nikita.ppv@gmail.com>2017-10-28 16:44:32 +0200
commit251c1b1a44f1150b27c682ab0c183a1b3aa4b2ea (patch)
treeec0f6654d5c56ea32f45965acd38a4774732d606
parent5c5bd3033997583887bd990e54c68adb2934bbdb (diff)
downloadphp-git-251c1b1a44f1150b27c682ab0c183a1b3aa4b2ea.tar.gz
Fix invalid read in mb_ord()
-rw-r--r--ext/mbstring/mbstring.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 7bb4304aff..40938d88e8 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -4838,14 +4838,15 @@ static inline zend_long php_mb_ord(const char* str, size_t str_len, const char*
mbfl_convert_filter_feed_string(filter, (const unsigned char *) str, str_len);
mbfl_convert_filter_flush(filter);
- mbfl_convert_filter_delete(filter);
if (dev.pos < 1 || filter->num_illegalchar || dev.buffer[0] >= MBFL_WCSGROUP_UCS4MAX) {
+ mbfl_convert_filter_delete(filter);
mbfl_wchar_device_clear(&dev);
return -1;
}
cp = dev.buffer[0];
+ mbfl_convert_filter_delete(filter);
mbfl_wchar_device_clear(&dev);
return cp;
}