[PATCH 2/2] Cygwin: remove ENOSHARE and ECASECLASH from _sys_errlist[]
Corinna Vinschen
corinna-cygwin@cygwin.com
Wed Feb 28 09:01:22 GMT 2024
On Feb 27 17:26, Christian Franke wrote:
> Hi Corinna,
>
> Corinna Vinschen wrote:
> > On Feb 27 13:18, Christian Franke wrote:
> > > ...
> > >
> > > diff --git a/winsup/cygwin/errno.cc b/winsup/cygwin/errno.cc
> > > index 7d58e62ec..d8c057e51 100644
> > > --- a/winsup/cygwin/errno.cc
> > > +++ b/winsup/cygwin/errno.cc
> > > @@ -167,8 +167,8 @@ const char *_sys_errlist[] =
> > > /* ESTALE 133 */ "Stale NFS file handle",
> > > /* ENOTSUP 134 */ "Not supported",
> > > /* ENOMEDIUM 135 */ "No medium found",
> > > -/* ENOSHARE 136 */ "No such host or network path",
> > > -/* ECASECLASH 137 */ "Filename exists with different case",
> > > + NULL, /* Was ENOSHARE 136, no longer used. */
> > > + NULL, /* Was ECASECLASH 137, no longer used. */
> > In terms of politenness, wouldn't it be better to define them as
> > empty strings? This may be one crash less in already existing
> > binaries...
>
> Indeed, I missed that case. Patch attached.
>
> Christian
>
> From 151da4ef76f84cd0343e6f49aa23de398ca73d1c Mon Sep 17 00:00:00 2001
> From: Christian Franke <christian.franke@t-online.de>
> Date: Tue, 27 Feb 2024 17:21:45 +0100
> Subject: [PATCH 2/2] Cygwin: set ENOSHARE and ECASECLASH _sys_errlist[]
> entries to empty
>
> These errno values are no longer used by Cygwin. Change the entries
> to empty strings instead of NULL to avoid crashes in existing
> binaries directly accessing the table. Enhance strerror_worker()
> such that empty strings also result in "Unknown error ..." messages.
> Also add a static_assert check for the _sys_errlist[] size.
>
> Signed-off-by: Christian Franke <christian.franke@t-online.de>
> ---
> winsup/cygwin/errno.cc | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)
Pushed.
Thanks,
Corinna
More information about the Cygwin-patches
mailing list