On 1 April 2014 18:45, Bryan Drewery <bdrew...@freebsd.org> wrote: > On 2014-03-31 20:24, Mateusz Guzik wrote: >> >> Author: mjg >> Date: Tue Apr 1 03:20:35 2014 >> >> New Revision: 263981 >> URL: http://svnweb.freebsd.org/changeset/base/263981 >> >> Log: >> Add a new errno: EMACS - Editor too big. >> >> Make a best-effort to detect that Emacs is about to executed and return >> the error. >> >> MFC after: 1 week >> >> Modified: >> head/lib/libc/gen/errlst.c >> head/sys/kern/kern_exec.c >> head/sys/sys/errno.h >> >> Modified: lib/libc/gen/errlst.c >> =================================================================== >> --- head/lib/libc/gen/errlst.c (263980) >> +++ head/lib/libc/gen/errlst.c (263981) >> @@ -155,6 +155,7 @@ >> "Not permitted in capability mode", /* 94 - ECAPMODE */ >> "State not recoverable", /* 95 - ENOTRECOVERABLE */ >> "Previous owner died", /* 96 - EOWNERDEAD */ >> + "Editor too big", /* 97 - EMACS */ >> }; >> const int sys_nerr = sizeof(sys_errlist) / sizeof(sys_errlist[0]); >> >> Modified: sys/kern/kern_exec.c >> =================================================================== >> --- head/sys/kern/kern_exec.c (263980) >> +++ head/sys/kern/kern_exec.c (263981) >> @@ -337,6 +337,7 @@ >> int (*img_first)(struct image_params *); >> struct pargs *oldargs = NULL, *newargs = NULL; >> struct sigacts *oldsigacts, *newsigacts; >> + char *e; >> #ifdef KTRACE >> struct vnode *tracevp = NULL; >> struct ucred *tracecred = NULL; >> @@ -418,6 +419,19 @@ >> >> SDT_PROBE(proc, kernel, , exec, args->fname, 0, 0, 0, 0 ); >> >> + /* >> + * A best-effort to check whether the file to be run is EMACS >> + */ >> + if (args->fname != NULL) { >> + e = args->fname + strlen(args->fname); >> + while (e > args->fname && *e != '/') >> + e--; >> + if (strcasecmp(e, "/emacs") == 0) { >> + error = EMACS; >> + goto exec_fail; >> + } >> + } >> + >> interpret: >> if (args->fname != NULL) { >> #ifdef CAPABILITY_MODE >> Modified: sys/sys/errno.h >> =================================================================== >> --- head/sys/sys/errno.h (263980) >> +++ head/sys/sys/errno.h (263981) >> @@ -178,10 +178,11 @@ >> #define ECAPMODE 94 /* Not permitted in >> capability mode */ >> #define ENOTRECOVERABLE 95 /* State not recoverable >> */ >> #define EOWNERDEAD 96 /* Previous owner died */ >> +#define EMACS 97 /* Editor too big */ >> #endif /* _POSIX_SOURCE */ >> >> #ifndef _POSIX_SOURCE >> -#define ELAST 96 /* Must be equal largest >> errno */ >> +#define ELAST 97 /* Must be equal largest >> errno */ >> #endif /* _POSIX_SOURCE */ >> >> #ifdef _KERNEL > > > Don't forget errno(2): >
As well as lib/libc/nls/C.msg -- wbr, pluknet _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"