glibc/glibc-RHEL-41205.patch
Patsy Griffin d629485632 Move ANSI_X3.110-1983 support from main package to glibc-gconv-extra.
Include iconvdata: fix invalid pointer arithmetic in ANSI_X3.110 module. (RHEL-41205)

Resolves: RHEL-41205
2025-12-02 17:37:11 -05:00

25 lines
928 B
Diff

commit e98bd0c54d5e296ad1be91b6fe35260c6b87e733
Author: Florian Weimer <fweimer@redhat.com>
Date: Fri Nov 28 11:46:09 2025 +0100
iconvdata: Fix invalid pointer arithmetic in ANSI_X3.110 module
The expression inptr + 1 can technically be invalid: if inptr == inend,
inptr may point one element past the end of an array.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
diff --git a/iconvdata/ansi_x3.110.c b/iconvdata/ansi_x3.110.c
index c5506b13b8..94e6e6b745 100644
--- a/iconvdata/ansi_x3.110.c
+++ b/iconvdata/ansi_x3.110.c
@@ -407,7 +407,7 @@ static const char from_ucs4[][2] =
is also available. */ \
uint32_t ch2; \
\
- if (inptr + 1 >= inend) \
+ if (inend - inptr <= 1) \
{ \
/* The second character is not available. */ \
result = __GCONV_INCOMPLETE_INPUT; \