Module Name: src Committed By: njoly Date: Sun Dec 22 17:14:23 UTC 2013
Modified Files: src/sys/compat/ibcs2: ibcs2_errno.c src/sys/compat/linux/common: linux_errno.c src/sys/compat/osf1: osf1_errno.c src/sys/compat/svr4: svr4_errno.c svr4_errno.h Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/compat/ibcs2/ibcs2_errno.c cvs rdiff -u -r1.14 -r1.15 src/sys/compat/linux/common/linux_errno.c cvs rdiff -u -r1.6 -r1.7 src/sys/compat/osf1/osf1_errno.c cvs rdiff -u -r1.10 -r1.11 src/sys/compat/svr4/svr4_errno.c cvs rdiff -u -r1.7 -r1.8 src/sys/compat/svr4/svr4_errno.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/ibcs2/ibcs2_errno.c diff -u src/sys/compat/ibcs2/ibcs2_errno.c:1.8 src/sys/compat/ibcs2/ibcs2_errno.c:1.9 --- src/sys/compat/ibcs2/ibcs2_errno.c:1.8 Tue Nov 13 02:08:21 2001 +++ src/sys/compat/ibcs2/ibcs2_errno.c Sun Dec 22 17:14:22 2013 @@ -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); Index: src/sys/compat/linux/common/linux_errno.c diff -u src/sys/compat/linux/common/linux_errno.c:1.14 src/sys/compat/linux/common/linux_errno.c:1.15 --- src/sys/compat/linux/common/linux_errno.c:1.14 Tue Dec 17 22:14:24 2013 +++ src/sys/compat/linux/common/linux_errno.c Sun Dec 22 17:14:22 2013 @@ -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); Index: src/sys/compat/osf1/osf1_errno.c diff -u src/sys/compat/osf1/osf1_errno.c:1.6 src/sys/compat/osf1/osf1_errno.c:1.7 --- src/sys/compat/osf1/osf1_errno.c:1.6 Wed Jan 2 18:48:22 2013 +++ src/sys/compat/osf1/osf1_errno.c Sun Dec 22 17:14:22 2013 @@ -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); Index: src/sys/compat/svr4/svr4_errno.c diff -u src/sys/compat/svr4/svr4_errno.c:1.10 src/sys/compat/svr4/svr4_errno.c:1.11 --- src/sys/compat/svr4/svr4_errno.c:1.10 Mon Apr 28 20:23:45 2008 +++ src/sys/compat/svr4/svr4_errno.c Sun Dec 22 17:14:22 2013 @@ -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); Index: src/sys/compat/svr4/svr4_errno.h diff -u src/sys/compat/svr4/svr4_errno.h:1.7 src/sys/compat/svr4/svr4_errno.h:1.8 --- src/sys/compat/svr4/svr4_errno.h:1.7 Mon Apr 28 20:23:45 2008 +++ src/sys/compat/svr4/svr4_errno.h Sun Dec 22 17:14:22 2013 @@ -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[];