From owner-svn-src-all@FreeBSD.ORG Tue Apr 1 14:51:27 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id B93B2BA; Tue, 1 Apr 2014 14:51:27 +0000 (UTC) Received: from mail-we0-x22e.google.com (mail-we0-x22e.google.com [IPv6:2a00:1450:400c:c03::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 91151DA1; Tue, 1 Apr 2014 14:51:26 +0000 (UTC) Received: by mail-we0-f174.google.com with SMTP id t60so6483982wes.33 for ; Tue, 01 Apr 2014 07:51:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=ZGgNAHS1psNty9OllNI158/FsecA1gHbWD8COWl4VOM=; b=QE4FCfSFfOFPuk4IOqwrh9PnKcgJT+MqcnXskv/XHN/ySEKYD79B6uuw1A8ni8oA79 wCtG7O/m6f9xeZQdrAVuPK2s+tCRvRmkTm8tZttW4TjGfD8RV8LXIXX1rv52Bgaqm2oq 0UaYn1pNRKmX+OeXiXdq71r+pScKeiIy4WHVXOspe6N6T9Tu4uicMmEqv2EGQ56AZRZX YsSy76Z0MlhBUnSnCNNtj9WvkPp+diLzd3ENMEbR2EVGYr+FoIFtxC/u2L9Co0veaXC9 SOxsDZkuqaCUTJ/8RO89lgQyQ82XJacb4sPupNQyNqXDfSjDIhk9ZAghhFWofV7In3B2 ixYQ== MIME-Version: 1.0 X-Received: by 10.180.89.102 with SMTP id bn6mr20576787wib.28.1396363884721; Tue, 01 Apr 2014 07:51:24 -0700 (PDT) Sender: pluknet@gmail.com Received: by 10.217.140.73 with HTTP; Tue, 1 Apr 2014 07:51:24 -0700 (PDT) In-Reply-To: <8fec12199b9480cbf1abaea126fa264e@shatow.net> References: <20140401012455.GA26117@dft-labs.eu> <8fec12199b9480cbf1abaea126fa264e@shatow.net> Date: Tue, 1 Apr 2014 18:51:24 +0400 X-Google-Sender-Auth: JYDltNJ2n7MLtR9tcznqyPvQWPs Message-ID: Subject: Re: svn commit: r263981 - in head: lib/libc/gen sys/kern sys/sys From: Sergey Kandaurov To: Bryan Drewery Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Mateusz Guzik , owner-src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Apr 2014 14:51:27 -0000 On 1 April 2014 18:45, Bryan Drewery 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