[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd, commited] mach: Fix __xpg_strerror_r on in-range but undefined er
From: |
Samuel Thibault |
Subject: |
[hurd, commited] mach: Fix __xpg_strerror_r on in-range but undefined errors [BZ #32350] |
Date: |
Sat, 9 Nov 2024 20:01:36 +0100 |
For instance, 1073741906 leads to system 16, subsystem 0 and code 82,
which is in range (max_code is 122), but not defined. Return EINVAL in
that case, like
---
sysdeps/mach/xpg-strerror.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/sysdeps/mach/xpg-strerror.c b/sysdeps/mach/xpg-strerror.c
index f8c65f8124..5e0e5a41d7 100644
--- a/sysdeps/mach/xpg-strerror.c
+++ b/sysdeps/mach/xpg-strerror.c
@@ -62,9 +62,19 @@ __xpg_strerror_r (int errnum, char *buf, size_t buflen)
if (sub >= es->max_sub)
estr = (const char *) es->bad_sub;
else if (code >= es->subsystem[sub].max_code)
- return EINVAL;
+ {
+ __snprintf (buf, buflen, "%s%d", _("Unknown error code: "), code);
+ return EINVAL;
+ }
else
- estr = (const char *) _(es->subsystem[sub].codes[code]);
+ {
+ estr = (const char *) _(es->subsystem[sub].codes[code]);
+ if (estr == NULL)
+ {
+ __snprintf (buf, buflen, "%s%d", _("Unknown error code: "), code);
+ return EINVAL;
+ }
+ }
size_t estrlen = strlen (estr);
--
2.45.2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [hurd, commited] mach: Fix __xpg_strerror_r on in-range but undefined errors [BZ #32350],
Samuel Thibault <=