summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main/rfc1867.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/main/rfc1867.c b/main/rfc1867.c
index 7f393c6ec3..5d7bd78d4e 100644
--- a/main/rfc1867.c
+++ b/main/rfc1867.c
@@ -510,13 +510,15 @@ static char *substring_conf(char *start, int len, char quote TSRMLS_DC)
if (start[i] == '\\' && (start[i + 1] == '\\' || (quote && start[i + 1] == quote))) {
*resp++ = start[++i];
} else {
- *resp++ = start[i];
#if HAVE_MBSTRING && !defined(COMPILE_DL_MBSTRING)
if (php_mb_encoding_translation(TSRMLS_C)) {
size_t j = php_mb_mbchar_bytes(start+i TSRMLS_CC);
while (j-- > 0) {
- *resp++ = start[++i];
+ *resp++ = start[i++];
}
+ --i;
+ } else {
+ *resp++ = start[i];
}
#endif
}