CTASSERT that native to compat errno translation tables are kept in
sync with native errno list. Remove extra entries (linux) which resulted in bad translated values, and add missing ones (ibcs2, osf1 and svr4) which made some out of bounds accesses.
This commit is contained in:
parent
7aa5a25a2b
commit
b50661d98e
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: ibcs2_errno.c,v 1.8 2001/11/13 02:08:21 lukem Exp $ */
|
||||
/* $NetBSD: ibcs2_errno.c,v 1.9 2013/12/22 17:14:22 njoly Exp $ */
|
||||
|
||||
/*
|
||||
* ibcs2_errno.c
|
||||
|
@ -32,7 +32,9 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: ibcs2_errno.c,v 1.8 2001/11/13 02:08:21 lukem Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: ibcs2_errno.c,v 1.9 2013/12/22 17:14:22 njoly Exp $");
|
||||
|
||||
#include <sys/errno.h>
|
||||
|
||||
#include <compat/ibcs2/ibcs2_errno.h>
|
||||
|
||||
|
@ -121,4 +123,18 @@ int const native_to_ibcs2_errno[] = {
|
|||
0, /* 81 */
|
||||
IBCS2_EIDRM, /* 82 */
|
||||
IBCS2_ENOMSG, /* 83 */
|
||||
IBCS2_EOVERFLOW, /* 84 */
|
||||
IBCS2_EILSEQ, /* 85 */
|
||||
0, /* 86 ENOTSUP */
|
||||
0, /* 87 ECANCELED */
|
||||
IBCS2_EBADMSG, /* 88 */
|
||||
IBCS2_ENODATA, /* 89 */
|
||||
IBCS2_ENOSR, /* 90 */
|
||||
IBCS2_ENOSTR, /* 91 */
|
||||
IBCS2_ETIME, /* 92 */
|
||||
0, /* 93 ENOATTR */
|
||||
IBCS2_EMULTIHOP, /* 94 */
|
||||
IBCS2_ENOLINK, /* 95 */
|
||||
IBCS2_EPROTO, /* 96 */
|
||||
};
|
||||
__CTASSERT(__arraycount(native_to_ibcs2_errno) == ELAST + 1);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: linux_errno.c,v 1.14 2013/12/17 22:14:24 njoly Exp $ */
|
||||
/* $NetBSD: linux_errno.c,v 1.15 2013/12/22 17:14:22 njoly Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1995 The NetBSD Foundation, Inc.
|
||||
|
@ -30,7 +30,9 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_errno.c,v 1.14 2013/12/17 22:14:24 njoly Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: linux_errno.c,v 1.15 2013/12/22 17:14:22 njoly Exp $");
|
||||
|
||||
#include <sys/errno.h>
|
||||
|
||||
#include <compat/linux/common/linux_errno.h>
|
||||
|
||||
|
@ -136,49 +138,5 @@ const int native_to_linux_errno[] = {
|
|||
LINUX_SCERR_SIGN LINUX_EMULTIHOP,
|
||||
LINUX_SCERR_SIGN LINUX_ENOLINK,
|
||||
LINUX_SCERR_SIGN LINUX_EPROTO, /* 96 */
|
||||
|
||||
/*
|
||||
* The rest of the list consists of errors that only
|
||||
* Linux has. They can be used to map them on to
|
||||
* themselves, so Linux emulating syscalls can return
|
||||
* these values.
|
||||
*/
|
||||
|
||||
LINUX_SCERR_SIGN LINUX_ECHRNG,
|
||||
LINUX_SCERR_SIGN LINUX_EL2NSYNC,
|
||||
LINUX_SCERR_SIGN LINUX_EL3HLT,
|
||||
LINUX_SCERR_SIGN LINUX_EL3RST,
|
||||
LINUX_SCERR_SIGN LINUX_ELNRNG,
|
||||
LINUX_SCERR_SIGN LINUX_EUNATCH,
|
||||
LINUX_SCERR_SIGN LINUX_ENOCSI,
|
||||
LINUX_SCERR_SIGN LINUX_EL2HLT,
|
||||
LINUX_SCERR_SIGN LINUX_EBADE,
|
||||
LINUX_SCERR_SIGN LINUX_EBADR,
|
||||
LINUX_SCERR_SIGN LINUX_EXFULL,
|
||||
LINUX_SCERR_SIGN LINUX_ENOANO,
|
||||
LINUX_SCERR_SIGN LINUX_EBADRQC,
|
||||
LINUX_SCERR_SIGN LINUX_EBADSLT,
|
||||
LINUX_SCERR_SIGN LINUX_EDEADLOCK,
|
||||
LINUX_SCERR_SIGN LINUX_EBFONT,
|
||||
LINUX_SCERR_SIGN LINUX_ENONET,
|
||||
LINUX_SCERR_SIGN LINUX_ENOPKG,
|
||||
LINUX_SCERR_SIGN LINUX_EADV,
|
||||
LINUX_SCERR_SIGN LINUX_ESRMNT,
|
||||
LINUX_SCERR_SIGN LINUX_ECOMM,
|
||||
LINUX_SCERR_SIGN LINUX_EDOTDOT,
|
||||
LINUX_SCERR_SIGN LINUX_ENOTUNIQ,
|
||||
LINUX_SCERR_SIGN LINUX_EBADFD,
|
||||
LINUX_SCERR_SIGN LINUX_EREMCHG,
|
||||
LINUX_SCERR_SIGN LINUX_ELIBACC,
|
||||
LINUX_SCERR_SIGN LINUX_ELIBBAD,
|
||||
LINUX_SCERR_SIGN LINUX_ELIBSCN,
|
||||
LINUX_SCERR_SIGN LINUX_ELIBMAX,
|
||||
LINUX_SCERR_SIGN LINUX_ELIBEXEC,
|
||||
LINUX_SCERR_SIGN LINUX_ERESTART,
|
||||
LINUX_SCERR_SIGN LINUX_ESTRPIPE,
|
||||
LINUX_SCERR_SIGN LINUX_EUCLEAN,
|
||||
LINUX_SCERR_SIGN LINUX_ENOTNAM,
|
||||
LINUX_SCERR_SIGN LINUX_ENAVAIL,
|
||||
LINUX_SCERR_SIGN LINUX_EISNAM,
|
||||
LINUX_SCERR_SIGN LINUX_EREMOTEIO,
|
||||
};
|
||||
__CTASSERT(__arraycount(native_to_linux_errno) == ELAST + 1);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: osf1_errno.c,v 1.6 2013/01/02 18:48:22 dsl Exp $ */
|
||||
/* $NetBSD: osf1_errno.c,v 1.7 2013/12/22 17:14:22 njoly Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1999 Christopher G. Demetriou. All rights reserved.
|
||||
|
@ -31,7 +31,9 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: osf1_errno.c,v 1.6 2013/01/02 18:48:22 dsl Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: osf1_errno.c,v 1.7 2013/12/22 17:14:22 njoly Exp $");
|
||||
|
||||
#include <sys/errno.h>
|
||||
|
||||
#include <compat/osf1/osf1.h>
|
||||
|
||||
|
@ -128,4 +130,17 @@ const int native_to_osf1_errno[] = {
|
|||
OSF1_EIDRM, /* EIDRM (82) -> 81 */
|
||||
OSF1_ENOMSG, /* ENOMSG (83) -> 80 */
|
||||
OSF1_EOVERFLOW, /* EOVERFLOW (84) -> 103 */
|
||||
OSF1_EILSEQ, /* EILSEQ (85) -> 116 */
|
||||
OSF1_ENOTSUP, /* ENOTSUP (86) -> 99 */
|
||||
OSF1_ECANCELED, /* ECANCELED (87) -> 94 */
|
||||
OSF1_EBADMSG, /* EBADMSG (88) -> 84 */
|
||||
OSF1_ENODATA, /* ENODATA (89) -> 86 */
|
||||
OSF1_ENOSR, /* ENOSR (90) -> 82 */
|
||||
OSF1_ENOSTR, /* ENOSTR (91) -> 87 */
|
||||
OSF1_ETIME, /* ETIME (92) -> 83 */
|
||||
OSF1_ENOSYS, /* ENOATTR (93) has no equivalent */
|
||||
OSF1_EMULTIHOP, /* EMULTIHOP (94) -> 101 */
|
||||
OSF1_ENOLINK, /* ENOLINK (95) -> 102 */
|
||||
OSF1_EPROTO, /* EPROTO (96) -> 85 */
|
||||
};
|
||||
__CTASSERT(__arraycount(native_to_osf1_errno) == ELAST + 1);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: svr4_errno.c,v 1.10 2008/04/28 20:23:45 martin Exp $ */
|
||||
/* $NetBSD: svr4_errno.c,v 1.11 2013/12/22 17:14:22 njoly Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994 The NetBSD Foundation, Inc.
|
||||
|
@ -34,7 +34,9 @@
|
|||
*/
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_errno.c,v 1.10 2008/04/28 20:23:45 martin Exp $");
|
||||
__KERNEL_RCSID(0, "$NetBSD: svr4_errno.c,v 1.11 2013/12/22 17:14:22 njoly Exp $");
|
||||
|
||||
#include <sys/errno.h>
|
||||
|
||||
#include <compat/svr4/svr4_errno.h>
|
||||
|
||||
|
@ -124,4 +126,18 @@ const int native_to_svr4_errno[] = {
|
|||
SVR4_ENEEDAUTH,
|
||||
SVR4_EIDRM,
|
||||
SVR4_ENOMSG,
|
||||
SVR4_EOVERFLOW,
|
||||
SVR4_EILSEQ,
|
||||
SVR4_ENOTSUP,
|
||||
SVR4_ECANCELED,
|
||||
SVR4_EBADMSG,
|
||||
SVR4_ENODATA,
|
||||
SVR4_ENOSR,
|
||||
SVR4_ENOSTR,
|
||||
SVR4_ETIME,
|
||||
SVR4_ENOATTR,
|
||||
SVR4_EMULTIHOP,
|
||||
SVR4_ENOLINK,
|
||||
SVR4_EPROTO,
|
||||
};
|
||||
__CTASSERT(__arraycount(native_to_svr4_errno) == ELAST + 1);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: svr4_errno.h,v 1.7 2008/04/28 20:23:45 martin Exp $ */
|
||||
/* $NetBSD: svr4_errno.h,v 1.8 2013/12/22 17:14:22 njoly Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1994 The NetBSD Foundation, Inc.
|
||||
|
@ -169,6 +169,9 @@
|
|||
#define SVR4_EFTYPE SVR4_ENOSYS
|
||||
#define SVR4_EAUTH SVR4_ENOSYS
|
||||
#define SVR4_ENEEDAUTH SVR4_ENOSYS
|
||||
#define SVR4_ENOTSUP SVR4_ENOSYS
|
||||
#define SVR4_ECANCELED SVR4_ENOSYS
|
||||
#define SVR4_ENOATTR SVR4_ENOSYS
|
||||
|
||||
extern const int native_to_svr4_errno[];
|
||||
|
||||
|
|
Loading…
Reference in New Issue