From owner-freebsd-audit Mon Aug 19 10:25:47 2002 Delivered-To: freebsd-audit@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 418A937B400; Mon, 19 Aug 2002 10:25:43 -0700 (PDT) Received: from baraca.united.net.ua (ns.united.net.ua [193.111.8.193]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9041143E42; Mon, 19 Aug 2002 10:25:41 -0700 (PDT) (envelope-from sobomax@FreeBSD.org) Received: from vega.vega.com (xDSL-2-2.united.net.ua [193.111.9.226] (may be forged)) by baraca.united.net.ua (8.11.6/8.11.6) with ESMTP id g7JHPHZ34061; Mon, 19 Aug 2002 20:25:17 +0300 (EEST) (envelope-from sobomax@FreeBSD.org) Received: from FreeBSD.org (big_brother.vega.com [192.168.1.1]) by vega.vega.com (8.12.5/8.12.5) with ESMTP id g7JHPBYR053378; Mon, 19 Aug 2002 20:25:11 +0300 (EEST) (envelope-from sobomax@FreeBSD.org) Message-ID: <3D612A34.BCB0B949@FreeBSD.org> Date: Mon, 19 Aug 2002 20:26:12 +0300 From: Maxim Sobolev Organization: Vega International Capital X-Mailer: Mozilla 4.79 [en] (Windows NT 5.0; U) X-Accept-Language: en,uk,ru MIME-Version: 1.0 To: Terry Lambert Cc: hackers@FreeBSD.org, audit@FreeBSD.org, Alexander Litvin , Andriy Gapon Subject: Re: Thread-safe resolver [patches for review] References: <3D578A99.F0821712@FreeBSD.org> <3D5792CD.497C80F0@mindspring.com> <3D57A9D4.DAA043EF@FreeBSD.org> <3D57CF6D.2982CE8@mindspring.com> <3D58BFE8.9281433@FreeBSD.org> <3D58C359.A5F7B1AA@mindspring.com> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Terry Lambert wrote: > > [...] > > > The assumption (which is potentially wrong) is that the program > > > will correctly shut down all its threads, when in fact it was a > > > module not under the programs control that created and used the > > > threads. > > > > I do not quite agree. In such case, the module should probably have > > destructor function, either placed into the fini section, or to be > > explicitly called by the program before dlclose(). > > Uh, that's exactly the argument I was making: use a .fini section > to clean up the per thread memory allocations. > 8-). I am not sure how you can get from a .fini section list of per-thread dynamically allocated storages, without resorting to inspecting inner implementation details of pthread_{set,get}specific(3). Any ideas? -Maxim To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message From owner-freebsd-audit Mon Aug 19 13:44:30 2002 Delivered-To: freebsd-audit@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E999337B400; Mon, 19 Aug 2002 13:44:22 -0700 (PDT) Received: from snipe.mail.pas.earthlink.net (snipe.mail.pas.earthlink.net [207.217.120.62]) by mx1.FreeBSD.org (Postfix) with ESMTP id 76C0043E72; Mon, 19 Aug 2002 13:44:22 -0700 (PDT) (envelope-from tlambert2@mindspring.com) Received: from dialup-209.247.137.16.dial1.sanjose1.level3.net ([209.247.137.16] helo=mindspring.com) by snipe.mail.pas.earthlink.net with esmtp (Exim 4.10) id 17gtNs-0000Ay-00; Mon, 19 Aug 2002 13:44:20 -0700 Message-ID: <3D61586C.5938BF99@mindspring.com> Date: Mon, 19 Aug 2002 13:43:24 -0700 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Maxim Sobolev Cc: hackers@FreeBSD.org, audit@FreeBSD.org, Alexander Litvin , Andriy Gapon Subject: Re: Thread-safe resolver [patches for review] References: <3D578A99.F0821712@FreeBSD.org> <3D5792CD.497C80F0@mindspring.com> <3D57A9D4.DAA043EF@FreeBSD.org> <3D57CF6D.2982CE8@mindspring.com> <3D58BFE8.9281433@FreeBSD.org> <3D58C359.A5F7B1AA@mindspring.com> <3D612A34.BCB0B949@FreeBSD.org> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Maxim Sobolev wrote: > Terry Lambert wrote: > > [...] > > > > The assumption (which is potentially wrong) is that the program > > > > will correctly shut down all its threads, when in fact it was a > > > > module not under the programs control that created and used the > > > > threads. > > > > > > I do not quite agree. In such case, the module should probably have > > > destructor function, either placed into the fini section, or to be > > > explicitly called by the program before dlclose(). > > > > Uh, that's exactly the argument I was making: use a .fini section > > to clean up the per thread memory allocations. > > 8-). > > I am not sure how you can get from a .fini section list of per-thread > dynamically allocated storages, without resorting to inspecting inner > implementation details of pthread_{set,get}specific(3). Any ideas? The easiest approach is explicit registration of the allocations at the time they occur. For kernel threads, this would probably involve mutex protection of the list, but for user space threads, you could just do unprotected insertion/deletion. The best example code for this at present is the per thread exception stack management code for C++. Unfortunately, the EGCS implementation is much worse than the GCC 2.95/2.96 patch that Jeremey Allison did back when we were working on porting the ACAP code to G++, so you have to eat the overhead, even in non-threaded programs, rather than dynamically attaching the allocation in thread startup (i.e. unthreaded programs eat threads overhead in the current scheme of things). Unless you went to a dynamic registration (with the mutex), yes, you'd have to modify pthread_get_specific(), or provide a weak symbol with a per .so strong wrapper to trap and record allocations. I'm not sure if that's really necessary, though. It is not so necessary that the allocations end up not being visible to the address space of other threads, as it is that they simply be discretely per thread (e.g. you don't have to protect against non-marshalled access by another thread). This gets us back to the discussion of whether it's safe to hand the results of a "resolve this" operation by a resolver worker thread off to another thread without copying it. If the result was local to the address space of the thread, then you'd get automatically protected (if you handed it off without a copy to the global heap, when you went to reference it, you'd core dump). This has some advantages, but I think it's too specific to the implementation details of threading on a particular OS (i.e. FreeBSD does not have seperate memory mappings per thread, like Windows does, and Windows only does for objects created *after* a thread is created, since allocations since main startup are not retroactively removed from the copy of the address space, etc.). Personally, I'd just intern the allocations, e.g.: struct foo { /* object I want to be per thread */ ... }; struct wrap_foo { /* intern version of object */ struct foo x; /* coerce and return this value */ SLIST_ENTRY(restrack) res_link; /* intern list */ }; And then insert each per thread allocation on a per object type list that is traversed by the function called by the module .fini. Realize, though, the the whole idea of per thread allocations in order to get around the "_r" problem is bogus if you get more than a small number of threads. If you had (for example) 10,000 threads, all calling the resolver, then you'd end up with 10,000 per thread allocations. If that happened, you'd probably be a *lot* better off explicitly using "_r" routines, and forcing the user to manage the allocations (and deallocations). This is probably automatic on the stack, anyway, which means it's memory that the caller doesn't have to explicitly track. Of course, if the user is writing code like that, it's probably not an issue, since they will end up leaking the memory somewhere else, given that they write bad code. ;^). Really, this is just to get around legacy interfaces that return a pointer to static storage, and which can't simply be murdered because of their presence in standards (same goes for strncpy). Ideally, the interface would never have done this in the first place. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message From owner-freebsd-audit Thu Aug 22 23:22:11 2002 Delivered-To: freebsd-audit@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9ECBA37B400 for ; Thu, 22 Aug 2002 23:22:00 -0700 (PDT) Received: from mailsrv.otenet.gr (mailsrv.otenet.gr [195.170.0.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id ADEB443E6E for ; Thu, 22 Aug 2002 23:21:59 -0700 (PDT) (envelope-from keramida@FreeBSD.org) Received: from hades.hell.gr (patr530-a151.otenet.gr [212.205.215.151]) by mailsrv.otenet.gr (8.12.4/8.12.4) with ESMTP id g7N6LqpD012298 for ; Fri, 23 Aug 2002 09:21:56 +0300 (EEST) Received: from hades.hell.gr (hades [127.0.0.1]) by hades.hell.gr (8.12.5/8.12.5) with ESMTP id g7N6LmDq010581 for ; Fri, 23 Aug 2002 09:21:49 +0300 (EEST) (envelope-from keramida@FreeBSD.org) Received: (from charon@localhost) by hades.hell.gr (8.12.5/8.12.5/Submit) id g7N5luBY006265 for audit@freebsd.org; Fri, 23 Aug 2002 08:47:56 +0300 (EEST) (envelope-from keramida@FreeBSD.org) Date: Fri, 23 Aug 2002 08:47:55 +0300 From: Giorgos Keramidas To: audit@FreeBSD.org Subject: a bin/ls warning with WARNS=5 Message-ID: <20020823054755.GA3344@hades.hell.gr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG How does this look? The source of bin/ls explicitly sets NO_WERROR=0 to unbreak its build, since print.c warns about an unused variable. The following fixes the warning and sets WARNS?=5 in the Makefile. WFORMAT=0 remains since I don't know how to fix the format warning :-/ %%% Index: Makefile =================================================================== RCS file: /home/ncvs/src/bin/ls/Makefile,v retrieving revision 1.23 diff -u -r1.23 Makefile --- Makefile 4 Feb 2002 03:06:50 -0000 1.23 +++ Makefile 23 Aug 2002 05:39:28 -0000 @@ -3,7 +3,7 @@ PROG= ls SRCS= cmp.c lomac.c ls.c print.c util.c -NO_WERROR=1 +WARNS?= 5 WFORMAT=0 DPADD= ${LIBM} LDADD= -lm Index: print.c =================================================================== RCS file: /home/ncvs/src/bin/ls/print.c,v retrieving revision 1.56 diff -u -r1.56 print.c --- print.c 30 Jun 2002 05:13:54 -0000 1.56 +++ print.c 2 Jul 2002 17:18:46 -0000 @@ -306,8 +306,7 @@ if (dp->list->fts_level != FTS_ROOTLEVEL && (f_longform || f_size)) (void)printf("total %lu\n", howmany(dp->btotal, blocksize)); - if (f_sortacross) - base = 0; + base = 0; for (row = 0; row < numrows; ++row) { endcol = colwidth; if (!f_sortacross) %%% To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message From owner-freebsd-audit Thu Aug 22 23:26:44 2002 Delivered-To: freebsd-audit@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E144837B400 for ; Thu, 22 Aug 2002 23:26:41 -0700 (PDT) Received: from mailsrv.otenet.gr (mailsrv.otenet.gr [195.170.0.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id E263043E6E for ; Thu, 22 Aug 2002 23:26:40 -0700 (PDT) (envelope-from keramida@FreeBSD.org) Received: from hades.hell.gr (patr530-a151.otenet.gr [212.205.215.151]) by mailsrv.otenet.gr (8.12.4/8.12.4) with ESMTP id g7N6QcpD016088 for ; Fri, 23 Aug 2002 09:26:39 +0300 (EEST) Received: from hades.hell.gr (hades [127.0.0.1]) by hades.hell.gr (8.12.5/8.12.5) with ESMTP id g7N6QbDq014828 for ; Fri, 23 Aug 2002 09:26:37 +0300 (EEST) (envelope-from keramida@FreeBSD.org) Received: (from charon@localhost) by hades.hell.gr (8.12.5/8.12.5/Submit) id g7N6QboS014827 for audit@FreeBSD.ORG; Fri, 23 Aug 2002 09:26:37 +0300 (EEST) (envelope-from keramida@FreeBSD.org) Date: Fri, 23 Aug 2002 09:26:37 +0300 From: Giorgos Keramidas To: audit@FreeBSD.org Subject: Re: a bin/ls warning with WARNS=5 Message-ID: <20020823062636.GA10607@hades.hell.gr> References: <20020823054755.GA3344@hades.hell.gr> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020823054755.GA3344@hades.hell.gr> Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On 2002-08-23 08:47 +0000, Giorgos Keramidas wrote: > WFORMAT=0 remains since I don't know how to fix the format warning :-/ A better fix for the WFORMAT case would probably be: %%% Index: Makefile =================================================================== RCS file: /home/ncvs/src/bin/ls/Makefile,v retrieving revision 1.23 diff -u -r1.23 Makefile --- Makefile 4 Feb 2002 03:06:50 -0000 1.23 +++ Makefile 23 Aug 2002 06:20:03 -0000 @@ -3,8 +3,9 @@ PROG= ls SRCS= cmp.c lomac.c ls.c print.c util.c -NO_WERROR=1 -WFORMAT=0 +WARNS?= 5 +WFORMAT=1 +CWARNFLAGS= -Wno-format-nonliteral DPADD= ${LIBM} LDADD= -lm %%% This way, the non-literal format string warning is turned off, but we don't lose the WFORMAT stuff in its entirety. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message From owner-freebsd-audit Fri Aug 23 21:16:28 2002 Delivered-To: freebsd-audit@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 03D2E37B400; Fri, 23 Aug 2002 21:16:27 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id AA5DD43E42; Fri, 23 Aug 2002 21:16:26 -0700 (PDT) (envelope-from kris@FreeBSD.org) Received: from freefall.freebsd.org (kris@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g7O4GQJU023698; Fri, 23 Aug 2002 21:16:26 -0700 (PDT) (envelope-from kris@freefall.freebsd.org) Received: (from kris@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g7O4GQim023694; Fri, 23 Aug 2002 21:16:26 -0700 (PDT) Date: Fri, 23 Aug 2002 21:16:26 -0700 (PDT) From: Kris Kennaway Message-Id: <200208240416.g7O4GQim023694@freefall.freebsd.org> To: kris@FreeBSD.org, kris@FreeBSD.org, freebsd-audit@FreeBSD.org Subject: Re: bin/9770: An openpty(3) auxiliary program Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Synopsis: An openpty(3) auxiliary program Responsible-Changed-From-To: kris->freebsd-audit Responsible-Changed-By: kris Responsible-Changed-When: Fri Aug 23 21:15:02 PDT 2002 Responsible-Changed-Why: I won't have time to look at this any time soon, but it's somewhat necessary. http://www.freebsd.org/cgi/query-pr.cgi?pr=9770 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message From owner-freebsd-audit Sat Aug 24 19:12:41 2002 Delivered-To: freebsd-audit@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1F03937B400; Sat, 24 Aug 2002 19:12:40 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id C569543E42; Sat, 24 Aug 2002 19:12:39 -0700 (PDT) (envelope-from johan@FreeBSD.org) Received: from freefall.freebsd.org (johan@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g7P2CdJU055633; Sat, 24 Aug 2002 19:12:39 -0700 (PDT) (envelope-from johan@freefall.freebsd.org) Received: (from johan@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g7P2Cdrh055629; Sat, 24 Aug 2002 19:12:39 -0700 (PDT) Date: Sat, 24 Aug 2002 19:12:39 -0700 (PDT) From: Johan Karlsson Message-Id: <200208250212.g7P2Cdrh055629@freefall.freebsd.org> To: johan@FreeBSD.org, freebsd-audit@FreeBSD.org, audit@FreeBSD.org Subject: Re: bin/9770: An openpty(3) auxiliary program Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Synopsis: An openpty(3) auxiliary program Responsible-Changed-From-To: freebsd-audit->audit Responsible-Changed-By: johan Responsible-Changed-When: Sat Aug 24 19:12:07 PDT 2002 Responsible-Changed-Why: Use short names for mailing list to make searches using the web query form work with the shown responsible. This also makes open PRs show up in the summery mail. http://www.freebsd.org/cgi/query-pr.cgi?pr=9770 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message From owner-freebsd-audit Sat Aug 24 19:12:48 2002 Delivered-To: freebsd-audit@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1F03937B400; Sat, 24 Aug 2002 19:12:40 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id C569543E42; Sat, 24 Aug 2002 19:12:39 -0700 (PDT) (envelope-from johan@FreeBSD.org) Received: from freefall.freebsd.org (johan@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g7P2CdJU055633; Sat, 24 Aug 2002 19:12:39 -0700 (PDT) (envelope-from johan@freefall.freebsd.org) Received: (from johan@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g7P2Cdrh055629; Sat, 24 Aug 2002 19:12:39 -0700 (PDT) Date: Sat, 24 Aug 2002 19:12:39 -0700 (PDT) From: Johan Karlsson Message-Id: <200208250212.g7P2Cdrh055629@freefall.freebsd.org> To: johan@FreeBSD.org, freebsd-audit@FreeBSD.org, audit@FreeBSD.org Subject: Re: bin/9770: An openpty(3) auxiliary program Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Synopsis: An openpty(3) auxiliary program Responsible-Changed-From-To: freebsd-audit->audit Responsible-Changed-By: johan Responsible-Changed-When: Sat Aug 24 19:12:07 PDT 2002 Responsible-Changed-Why: Use short names for mailing list to make searches using the web query form work with the shown responsible. This also makes open PRs show up in the summery mail. http://www.freebsd.org/cgi/query-pr.cgi?pr=9770 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message From owner-freebsd-audit Sat Aug 24 22:26:19 2002 Delivered-To: freebsd-audit@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2152F37B400; Sat, 24 Aug 2002 22:26:18 -0700 (PDT) Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id 055C343E4A; Sat, 24 Aug 2002 22:26:17 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id FAA31782; Sun, 25 Aug 2002 05:26:15 GMT Date: Sun, 25 Aug 2002 15:32:05 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: Giorgos Keramidas Cc: audit@FreeBSD.ORG Subject: Re: a bin/ls warning with WARNS=5 In-Reply-To: <20020823062636.GA10607@hades.hell.gr> Message-ID: <20020825152915.K14326-100000@gamplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-audit@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Fri, 23 Aug 2002, Giorgos Keramidas wrote: > On 2002-08-23 08:47 +0000, Giorgos Keramidas wrote: > > WFORMAT=0 remains since I don't know how to fix the format warning :-/ > > A better fix for the WFORMAT case would probably be: > > %%% > Index: Makefile > =================================================================== > RCS file: /home/ncvs/src/bin/ls/Makefile,v > retrieving revision 1.23 > diff -u -r1.23 Makefile > --- Makefile 4 Feb 2002 03:06:50 -0000 1.23 > +++ Makefile 23 Aug 2002 06:20:03 -0000 > @@ -3,8 +3,9 @@ > > PROG= ls > SRCS= cmp.c lomac.c ls.c print.c util.c > -NO_WERROR=1 > -WFORMAT=0 > +WARNS?= 5 > +WFORMAT=1 > +CWARNFLAGS= -Wno-format-nonliteral > DPADD= ${LIBM} > LDADD= -lm > > %%% No; this adds a hard-coded dependency on gcc. Maybe WFORMAT=0.5 should give half-baked format checking. The value for half-bakedness would at least easier to remember than what WARNS=5 means today ;-). Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-audit" in the body of the message