avutil/avstring: do not lose ascii characters when decoding non utf-8 with av_utf8_decode()

Fixes Ticket3363

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-04-12 20:01:33 +02:00
parent ca6dd53a73
commit a31547ce2e
1 changed files with 4 additions and 4 deletions

View File

@ -331,15 +331,15 @@ int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end,
while (code & top) { while (code & top) {
int tmp; int tmp;
if (p >= buf_end) { if (p >= buf_end) {
ret = AVERROR(EILSEQ); /* incomplete sequence */ (*bufp) ++;
goto end; return AVERROR(EILSEQ); /* incomplete sequence */
} }
/* we assume the byte to be in the form 10xx-xxxx */ /* we assume the byte to be in the form 10xx-xxxx */
tmp = *p++ - 128; /* strip leading 1 */ tmp = *p++ - 128; /* strip leading 1 */
if (tmp>>6) { if (tmp>>6) {
ret = AVERROR(EILSEQ); (*bufp) ++;
goto end; return AVERROR(EILSEQ);
} }
code = (code<<6) + tmp; code = (code<<6) + tmp;
top <<= 5; top <<= 5;