mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-19 13:40:59 +08:00
Fix assertion in gconv's loop.c
This commit is contained in:
parent
d1863a4e95
commit
5e0d030065
@ -1,5 +1,8 @@
|
||||
2012-01-03 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
* iconv/loop.c (single loop): Fix assertion in storing of
|
||||
remaining bytes.
|
||||
|
||||
* posix/regcomp.c (init_word_char): Optimize a bit for sane encodings.
|
||||
|
||||
2012-01-01 Ulrich Drepper <drepper@gmail.com>
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Conversion loop frame work.
|
||||
Copyright (C) 1998-2003, 2005, 2008, 2011 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998-2003, 2005, 2008, 2011, 2012 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||
|
||||
@ -390,6 +390,7 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
|
||||
UNPACK_BYTES
|
||||
#else
|
||||
/* Add the bytes from the state to the input buffer. */
|
||||
assert ((state->__count & 7) <= sizeof (state->__value));
|
||||
for (inlen = 0; inlen < (size_t) (state->__count & 7); ++inlen)
|
||||
bytebuf[inlen] = state->__value.__wchb[inlen];
|
||||
#endif
|
||||
@ -474,7 +475,7 @@ SINGLE(LOOPFCT) (struct __gconv_step *step,
|
||||
/* We don't have enough input for another complete input
|
||||
character. */
|
||||
assert (inend - inptr > (state->__count & ~7));
|
||||
assert (inend - inptr <= 7);
|
||||
assert (inend - inptr <= sizeof (state->__value));
|
||||
state->__count = (state->__count & ~7) | (inend - inptr);
|
||||
inlen = 0;
|
||||
while (inptr < inend)
|
||||
|
Loading…
x
Reference in New Issue
Block a user