diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-04-12 20:01:33 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-04-13 15:33:23 +0200 |
commit | a31547ce2e5c46d7a7005fe70dcf9b3a7c5fc4ac (patch) | |
tree | a8bcff6cadd5b79cdee369e266192ee78f4473b7 /libavutil | |
parent | ca6dd53a734d6fc453de425340d7e9ec4ef385b5 (diff) | |
download | ffmpeg-streaming-a31547ce2e5c46d7a7005fe70dcf9b3a7c5fc4ac.zip ffmpeg-streaming-a31547ce2e5c46d7a7005fe70dcf9b3a7c5fc4ac.tar.gz |
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>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/avstring.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libavutil/avstring.c b/libavutil/avstring.c index f4374fd..e75cdc6 100644 --- a/libavutil/avstring.c +++ b/libavutil/avstring.c @@ -331,15 +331,15 @@ int av_utf8_decode(int32_t *codep, const uint8_t **bufp, const uint8_t *buf_end, while (code & top) { int tmp; if (p >= buf_end) { - ret = AVERROR(EILSEQ); /* incomplete sequence */ - goto end; + (*bufp) ++; + return AVERROR(EILSEQ); /* incomplete sequence */ } /* we assume the byte to be in the form 10xx-xxxx */ tmp = *p++ - 128; /* strip leading 1 */ if (tmp>>6) { - ret = AVERROR(EILSEQ); - goto end; + (*bufp) ++; + return AVERROR(EILSEQ); } code = (code<<6) + tmp; top <<= 5; |