I did:
> 2026-08-16  Bruno Haible  <[email protected]>
> 
>       striconveh: Ensure that none of the offsets[] are out-of-range.

Now, the CI reports a test failure on those platforms that use a non-GNU
implementation of iconv():

FAIL: test-u16-conv-to-enc
==========================

../../gltests/uniconv/test-u16-conv-to-enc.c:165: assertion 'offsets[0] == 
(size_t)(-1)' failed
FAIL test-u16-conv-to-enc (exit status: 1)


This patch fixes it.


2026-08-18  Bruno Haible  <[email protected]>

        u16-conv-to-enc: Ensure that none of the offsets[] are out-of-range.
        * lib/uniconv/u-conv-to-enc.h (FUNC): Don't assign an offsets[i] at the
        incomplete sequence at the end.

diff --git a/lib/uniconv/u-conv-to-enc.h b/lib/uniconv/u-conv-to-enc.h
index 9467fa8952..96c35039f0 100644
--- a/lib/uniconv/u-conv-to-enc.h
+++ b/lib/uniconv/u-conv-to-enc.h
@@ -136,7 +136,10 @@ FUNC (const char *tocode,
          incomplete sequence of units at the end.  */
       if (iunit < srclen)
         {
-          offsets[iunit] = *lengthp;
+          /* NOT
+               offsets[iunit] = *lengthp;
+             because the caller expects that all assigned offsets[i]
+             are < *lengthp.  */
           if (!(U_MBLEN (src + iunit, srclen - iunit) < 0))
             abort ();
         }




Reply via email to