Re: striconveh: Ensure that none of the offsets[] are out-of-range

Mike FABIAN <[email protected]>
Newsgroups gmane.comp.lib.gnulib.bugs
Organization Red Hat
Message-ID <[email protected]>
Bruno Haible <[email protected]> さんはかきました:

> The mem_iconveh functions is documented to return an offsets[] array:
>
>    If OFFSETS is not NULL, it should point to an array of SRCLEN integers; this
>    array is filled with offsets into the result, i.e. the character starting
>    at SRC[i] corresponds to the character starting at (*RESULTP)[OFFSETS[i]],
>    and other offsets are set to (size_t)(-1).
>
> In a couple of cases, OFFSETS[i] can point to the end of the result string:
>   - When the input ends in an invalid character and handler == iconveh_error,
>   - When the input is in a stateful encoding and ends in a shift sequence,
>   - When the input ends in one or more Unicode LANGUAGE TAG characters.
>
> None of these leads to a bug in libunistring. But it's worth fixing anyway.
>
>
> 2026-08-16  Bruno Haible  <[email protected]>
>
> 	striconveh: Ensure that none of the offsets[] are out-of-range.
> 	Reported by AISLE via Mike Fabian <[email protected]>.
> 	* lib/striconveh.c (mem_cd_iconveh_internal): Ensure that no offsets[i]
> 	is == length.
> 	* tests/test-striconveh.c (main): Adjust expected contents of the
> 	offsets[] array.
> 	* lib/striconveh.c (main): Likewise.
> 	* tests/test-striconveh.c (main): Likewise.
> 	* tests/test-striconveha.c (main): Likewise.
> 	* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
> 	* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
> 	* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
> 	* tests/uniconv/test-u8-conv-to-enc.c (main): Likewise.
> 	* tests/uniconv/test-u16-conv-to-enc.c (main): Likewise.
>
> 	striconveh tests: Add some more test cases.
> 	* tests/test-striconveh.c (main): Add some more test cases for
> 	mem_iconveh() with offsets.

Great! Thank you very much for the quick fix!

-- 
Mike FABIAN <[email protected]>
He/Him/His
睡眠不足はいい仕事の敵だ。
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.