Fixing mbrtoc32 reported here:

https://sourceforge.net/p/mingw-w64/bugs/957/

Bad array index in function implementation.

Costas
From d48a1e302ccd8de735b8129b2e212adb8e2fbc78 Mon Sep 17 00:00:00 2001
From: Costas Argyris <[email protected]>
Date: Sun, 19 Mar 2023 01:01:42 +0000
Subject: [PATCH] Fix mbrtoc32 function.

As mentioned in https://sourceforge.net/p/mingw-w64/bugs/957/
this function returns the wrong value.

After correcting the bad array index the result is correct.
---
 mingw-w64-crt/misc/uchar_mbrtoc32.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mingw-w64-crt/misc/uchar_mbrtoc32.c 
b/mingw-w64-crt/misc/uchar_mbrtoc32.c
index 1d63e5ceb..825fc5268 100644
--- a/mingw-w64-crt/misc/uchar_mbrtoc32.c
+++ b/mingw-w64-crt/misc/uchar_mbrtoc32.c
@@ -62,7 +62,7 @@ size_t mbrtoc32 (char32_t *__restrict__ pc32,
        if (n < 4)
            return (size_t)-2;
 
-       *pc32 = ((s[0] & 7) << 18) | ((s[1] & 63) << 12) | ((s[2] & 63) << 6) | 
(s[4] & 63);
+       *pc32 = ((s[0] & 7) << 18) | ((s[1] & 63) << 12) | ((s[2] & 63) << 6) | 
(s[3] & 63);
        return 4;
     }
 
-- 
2.30.2

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to