NetBSD Problem Report #13400

Received: (qmail 3367 invoked from network); 7 Jul 2001 08:11:18 -0000
Message-Id: <1ew670o.c4qpm2h9lubkM%manu@netbsd.org>
Date: Sat, 7 Jul 2001 10:13:47 +0200
From: manu@netbsd.org (Emmanuel Dreyfus)
To: gnats-bugs@gnats.netbsd.org
Cc: manu@netbsd.org
Subject: Syslogd silently ignores lines with no tabs in syslogd.conf
X-Send-Pr-Version: 3.95

>Number:         13400
>Category:       bin
>Synopsis:       Syslogd silently ignores lines with no tabs in
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    bin-bug-people
>State:          closed
>Class:          change-request
>Submitter-Id:   net
>Arrival-Date:   Sat Jul 07 08:12:00 +0000 2001
>Closed-Date:    Mon Jul 16 05:02:25 +0000 2001
>Last-Modified:  Mon Jul 16 05:02:25 +0000 2001
>Originator:     Emmanuel Dreyfus
>Release:        NetBSD-current  20010707
>Organization:
        The NetBSD Project
>Environment:
System: NetBSD violette 1.5W NetBSD 1.5W (TOMKERN) #2: Mon Jun 25
23:08:47 CEST 2001
manu@violette:/usr/src/sys/arch/macppc/compile/TOMKERN macppc
Architecture: powerpc
Machine: macppc
>Description:
When syslogd parses a line of syslogd.conf, it looks for a tab to
delimiter 
the logging facility from the log target. If there is no tab (the
logging
facillity and the log target are separated by spaces), then syslogd will
report that the facility is unknown.

Unfortunately, at the time the message is produced, syslogd is already a
deamon, hence the message cannot go to the terminal. The only hope to 
save the error message is logging it, but if there is a fatal error, 
syslogd won't start, and we will loose the error message. Even if
syslogd
starts, if you configured it that way:
*.*     /var/log/all-logs 
(only spaces here)
the line will be ignored (no tabs), and the error message will be lost.

>How-To-Repeat:
Add this line to your syslog.conf:
*.* /tmp/toto
(no tab, just one or more spaces)
kill syslogd, restart it, and check if you get something in /tmp/toto

>Fix:

Here is the fix. the call to daemon() have been moved later so that all
fatal
error will happen when we are not daemonized. logerror() is fixed to
output
the error message on the terminal when syslogd is not yet daemonized,
and to
syslog() when it is daemonized.

And finnally, when parsing lines in the config file, we first check if
there
is no tab in the line. If there are no tabs, we change spaces to tabs so
that
it will work, and we issue a warning message.

This will probably not make this kind of line working:
auth.info;\skern.notice\s\s@loghost.somewhere-over-the-rainbow.org
Because the log facility will be "auth.info" and the log target will be
"kern.notice\t@loghost.somewhere-over-the-rainbow.org"
But we don't care because we will have an error message.

Please try-out that patch. If no-one compalin, I'll will commit it
shortly

Index: syslogd.c
===================================================================
RCS file: /cvsroot/basesrc/usr.sbin/syslogd/syslogd.c,v
retrieving revision 1.44
diff -U4 -r1.44 syslogd.c
--- syslogd.c   2001/03/21 17:02:43     1.44
+++ syslogd.c   2001/07/07 07:54:29
@@ -185,8 +185,9 @@
 struct filed *Files;
 struct filed consfile;

 int    Debug;                  /* debug flag */
+int    daemonized = 0;         /* we are not daemonized yet */
 char   LocalHostName[MAXHOSTNAMELEN+1];        /* our hostname */
 char   *LocalDomain;           /* our local domain name */
 int    *finet = NULL;                  /* Internet datagram sockets */
 int    Initialized = 0;        /* set when we have initialized
ourselves */
@@ -259,12 +260,9 @@
                }
        if ((argc -= optind) != 0)
                usage();

-       if (!Debug)
-               (void)daemon(0, 0);
-       else
-               setlinebuf(stdout);
+       setlinebuf(stdout);

        consfile.f_type = F_CONSOLE;
        (void)strcpy(consfile.f_un.f_fname, ctty);
        (void)gethostname(LocalHostName, sizeof(LocalHostName));
@@ -365,8 +363,19 @@
                readfds[nfds].fd = funix[j++];
                readfds[nfds++].events = POLLIN | POLLPRI;
        }

+       /* 
+        * We cannot detach from the terminal before we are sure we
won't 
+        * have a fatal error, because error message would not go to the
+        * terminal and would not be logged because syslogd dies. 
+        * All die() calls are behind us, we can call daemon()
+        */
+       if (!Debug) {
+               (void)daemon(0, 0);
+               daemonized = 1;
+       }
+
        for (;;) {
                int rv;

                rv = poll(readfds, nfds, INFTIM);
@@ -1000,10 +1009,14 @@
                    sizeof(buf), "syslogd: %s: %s", type,
strerror(errno));
        else
                (void)snprintf(buf, sizeof(buf), "syslogd: %s", type);
        errno = 0;
-       dprintf("%s\n", buf);
-       logmsg(LOG_SYSLOG|LOG_ERR, buf, LocalHostName, ADDDATE);
+       if (daemonized) 
+               logmsg(LOG_SYSLOG|LOG_ERR, buf, LocalHostName, ADDDATE);
+       if (!daemonized && Debug)
+               dprintf("%s\n", buf);
+       if (!daemonized && !Debug)
+               printf("%s\n", buf);
 }

 void
 die(signo)
@@ -1021,8 +1034,12 @@
                dprintf("syslogd: exiting on signal %d\n", signo);
                (void)snprintf(buf, sizeof buf, "exiting on signal %d",
signo);
                errno = 0;
                logerror(buf);
+       } else {
+               (void)snprintf(buf, sizeof buf, "fatal error,
exitting");
+               errno = 0;
+               logerror(buf);
        }
        for (p = LogPaths; p && *p; p++)
                unlink(*p);
        exit(0);
@@ -1193,8 +1210,21 @@
        /* clear out file entry */
        memset(f, 0, sizeof(*f));
        for (i = 0; i <= LOG_NFACILITIES; i++)
                f->f_pmask[i] = INTERNAL_NOPRI;
+
+       /* check a format error: no tabs in the line */
+       for (q = line; *q && *q != '\t'; q++)
+               continue;
+       if (! *q) {
+               (void)snprintf(ebuf, sizeof ebuf,
+                   "Warning: \"%s\" no tabs in the line", line);
+               logerror(ebuf);
+               /* Fix it; replace all spaces by tabs */
+               for (q = line; *q; q++)
+                       if (*q == ' ')  
+                               *q='\t';
+       }

        /* scan through the list of selectors */
        for (p = line; *p && *p != '\t';) {



-- 
Emmanuel Dreyfus
manu@netbsd.org
>Release-Note:
>Audit-Trail:

From: manu@netbsd.org (Emmanuel Dreyfus)
To: gnats-bugs@netbsd.org, ljt@alum.mit.edu, christos@zoulas.com
Cc:  
Subject: bin/13400 new patch for syslogd
Date: Fri, 13 Jul 2001 00:06:52 +0200

 Here is a new patch for syslogd. It seems the last one was garbled,
 hence I uuencoded it to prevent any problem.

 We have, as in the previous one, the improved error reporting when
 things are going wrong during syslogd startup (messages go to the
 terminal instead of being lost as they are now in -current)

 New in this patch: I think we now report accurate warning message for
 all spaces in syslog.conf related problems. Theses are:
 <spaces>kern.crit<tabs>/var/log/kernlog
 kern.crit<spaces><tabs>/var/log/kernlog

 Thoses two kind of lines are silently ignored in -current (there is an
 error, but it's lost)

 I also added a better error messages when there is only one field in the
 line.

 Finnally, I added support for setuid/setgid/chroot, but I have not fully
 tested this yet.

 Opinions?

 begin 644 syslogd.patch
 cvs server: Diffing .
 M/R!S>7-L;V=D+F-A=#@*/R!S>7-L;V<N8V]N9BYC870U"DEN9&5X.B!S>7-L
 M;V=D+C@*/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/0I20U,@9FEL93H@+V-V<W)O
 M;W0O8F%S97-R8R]U<W(N<V)I;B]S>7-L;V=D+W-Y<VQO9V0N."QV"G)E=')I
 M979I;F<@<F5V:7-I;VX@,2XR,`ID:69F("U5-"`M<C$N,C`@<WES;&]G9"XX
 M"BTM+2!S>7-L;V=D+C@),C`P,2\P-2\P,R`Q-CHT-3HP,0DQ+C(P"BLK*R!S
 M>7-L;V=D+C@),C`P,2\P-R\Q,B`R,3HU-3HT.`I`0"`M-#4L."`K-#4L,3<@
 M0$`*("Y":R`M=V]R9',*("Y/<"!&;"!F($%R(&-O;F9I9U]F:6QE"B`N16L*
 M("Y":R`M=V]R9',**RY/<"!&;"!U($%R('5S97(**RY%:PHK+D)K("UW;W)D
 M<PHK+D]P($9L(&<@07(@=7-E<@HK+D5K"BLN0FL@+7=O<F1S"BLN3W`@1FP@
 M="!!<B!C:')O;W1?9&ER"BLN16L**RY":R`M=V]R9',*("Y/<"!&;"!M($%R
 M(&UA<FM?:6YT97)V86P*("Y%:PH@+D)K("UW;W)D<PH@+D]P($9L(%`@07(@
 M9FEL95]L:7-T"D!`("TV.2PX("LW."PR,2!`0`H@+DET($9L(&8*(%-P96-I
 M9GD@=&AE('!A=&AN86UE(&]F(&%N(&%L=&5R;F%T:79E(&-O;F9I9W5R871I
 M;VX@9FEL93L*('1H92!D969A=6QT(&ES"B`N4&$@+V5T8R]S>7-L;V<N8V]N
 M9B`N"BLN270@1FP@=2!!<B!U<V5R"BM3970@54E$('1O(`HK+D%R('5S97(@
 M"BMA9G1E<B!T:&4@<V]C:V5T<R!A;F0@;&]G(&9I;&5S(&AA=F4@8F5E;B!O
 M<&5N+@HK+DET($9L(&<@07(@9W)O=7`**U-E="!'240@=&\@"BLN07(@9W)O
 M=7`@"BMA9G1E<B!T:&4@<V]C:V5T<R!A;F0@;&]G(&9I;&5S(&AA=F4@8F5E
 M;B!O<&5N+@HK+DET($9L('0@07(@8VAR;V]T7V1I<@HK+EAR(&-H<F]O="`R
 M"BMT;PHK+D%R(&-H<F]O=%]D:7(**V%F=&5R('1H92!S;V-K971S(&%N9"!L
 M;V<@9FEL97,@"6AA=F4@8F5E;B!O<&5N+@H@+DET($9L(&T*(%-E;&5C="!T
 M:&4@;G5M8F5R(&]F(&UI;G5T97,@8F5T=V5E;B!@8&UA<FLG)R!M97-S86=E
 M<SL*('1H92!D969A=6QT(&ES(#(P(&UI;G5T97,N"B`N270@1FP@<PI);F1E
 M>#H@<WES;&]G9"YC"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I;&4Z
 M("]C=G-R;V]T+V)A<V5S<F,O=7-R+G-B:6XO<WES;&]G9"]S>7-L;V=D+F,L
 M=@IR971R:65V:6YG(')E=FES:6]N(#$N-#0*9&EF9B`M530@+7(Q+C0T('-Y
 M<VQO9V0N8PHM+2T@<WES;&]G9"YC"3(P,#$O,#,O,C$@,3<Z,#(Z-#,),2XT
 M-`HK*RL@<WES;&]G9"YC"3(P,#$O,#<O,3(@,C$Z-34Z-3$*0$`@+3$P-"PX
 M("LQ,#0L,3`@0$`*("-I;F-L=61E(#QS=')I;F<N:#X*("-I;F-L=61E(#QU
 M;FES=&0N:#X*("-I;F-L=61E(#QU=&UP+F@^"B`C:6YC;'5D92`\=71I;"YH
 M/@HK(VEN8VQU9&4@/'!W9"YH/@HK(VEN8VQU9&4@/&=R<"YH/@H@(VEN8VQU
 M9&4@(G!A=&AN86UE<RYH(@H@"B`C9&5F:6YE(%-94TQ/1U].04U%4PH@(VEN
 M8VQU9&4@/'-Y<R]S>7-L;V<N:#X*0$`@+3$X-2PX("LQ.#<L.2!`0`H@<W1R
 M=6-T"69I;&5D("I&:6QE<SL*('-T<G5C=`EF:6QE9"!C;VYS9FEL93L*(`H@
 M:6YT"41E8G5G.PD)"2\J(&1E8G5G(&9L86<@*B\**VEN=`ED865M;VYI>F5D
 M(#T@,#L)"2\J('=E(&%R92!N;W0@9&%E;6]N:7IE9"!Y970@*B\*(&-H87()
 M3&]C86Q(;W-T3F%M95M-05A(3U-43D%-14Q%3BLQ73L)+RH@;W5R(&AO<W1N
 M86UE("HO"B!C:&%R"2I,;V-A;$1O;6%I;CL)"2\J(&]U<B!L;V-A;"!D;VUA
 M:6X@;F%M92`J+PH@:6YT"2IF:6YE="`]($Y53$P["0D)+RH@26YT97)N970@
 M9&%T86=R86T@<V]C:V5T<R`J+PH@:6YT"4EN:71I86QI>F5D(#T@,#L)+RH@
 M<V5T('=H96X@=V4@:&%V92!I;FET:6%L:7IE9"!O=7)S96QV97,@*B\*0$`@
 M+3(R-RPQ,R`K,C,P+#,W($!`"B`)<W1R=6-T('-O8VMA9&1R7W5N('-U;G@L
 M(&9R;VUU;FEX.PH@"7-T<G5C="!S;V-K861D<E]S=&]R86=E(&9R;VUI;F5T
 M.PH@"6-H87(@*G`L("IL:6YE+"`J*G!P.PH@"7-T<G5C="!P;VQL9F0@*G)E
 M861F9',["BL)=6ED7W0@=6ED(#T@,#L**PEG:61?="!G:60@/2`P.PHK"6-H
 M87(@*G5S97(@/2!.54Q,.PHK"6-H87(@*F=R;W5P(#T@3E5,3#L**PEC:&%R
 M("IR;V]T(#T@(B\B.PHK"6-H87(@*F5N9'`["BL)<W1R=6-T(&=R;W5P("`@
 M*F=R.PHK"7-T<G5C="!P87-S=V0@("IP=SL**PD*(`H@"2AV;VED*7-E=&QO
 M8V%L92A,0U]!3$PL("(B*3L*(`HM"7=H:6QE("@H8V@@/2!G971O<'0H87)G
 M8RP@87)G=BP@(F1S9CIM.G`Z4#HB*2D@(3T@+3$I"BL)=VAI;&4@*"AC:"`]
 M(&=E=&]P="AA<F=C+"!A<F=V+"`B9'-F.FTZ<#I0.G4Z9SIT.B(I*2`A/2`M
 M,2D*(`D)<W=I=&-H*&-H*2!["BL)"6-A<V4@)W4G.@HK"0D)=7-E<B`](&]P
 M=&%R9SL**PD)"6EF("@J=7-E<B`]/2`G7#`G*0HK"0D)"75S86=E*"D["BL)
 M"0EB<F5A:SL**PD)8V%S92`G9R<Z"BL)"0EG<F]U<"`](&]P=&%R9SL**PD)
 M"6EF("@J9W)O=7`@/3T@)UPP)RD**PD)"0EU<V%G92@I.PHK"0D)8G)E86L[
 M"BL)"6-A<V4@)W0G.@HK"0D)<F]O="`](&]P=&%R9SL**PD)"6EF("@J<F]O
 M="`]/2`G7#`G*0HK"0D)"75S86=E*"D["BL)"0EB<F5A:SL*(`D)8V%S92`G
 M9"<Z"0DO*B!D96)U9R`J+PH@"0D)1&5B=6<K*SL*(`D)"6)R96%K.PH@"0EC
 M87-E("=F)SH)"2\J(&-O;F9I9W5R871I;VX@9FEL92`J+PI`0"`M,C4Y+#$S
 M("LR.#8L-3@@0$`*(`D)?0H@"6EF("@H87)G8R`M/2!O<'1I;F0I("$](#`I
 M"B`)"75S86=E*"D["B`*+0EI9B`H(41E8G5G*0HM"0DH=F]I9"ED865M;VXH
 M,"P@,"D["BT)96QS90HM"0ES971L:6YE8G5F*'-T9&]U="D["BL)<V5T;&EN
 M96)U9BAS=&1O=70I.PHK"BL):68@*'5S97(@(3T@3E5,3"D@>PHK"0EI9B`H
 M:7-D:6=I="@J=7-E<BDI('L**PD)"75I9"`]("AU:61?="ES=')T;VPH=7-E
 M<BP@)F5N9'`L(#`I.PHK"0D):68@*"IE;F1P("$]("=<,"<I"BL)("`@(`D)
 M9V]T;R!G971U<V5R.PHK"0E](&5L<V4@>PHK9V5T=7-E<CH**PD)"6EF("@H
 M<'<@/2!G971P=VYA;2AU<V5R*2D@(3T@3E5,3"D@>PHK"0D)"75I9"`]('!W
 M+3YP=U]U:60["BL)"0E](&5L<V4@>PHK"0D)"6-H87(@8G5F6TU!6%!!5$A,
 M14Y=.PHK"0D)"2AV;VED*7-N<')I;G1F*&)U9BP@<VEZ96]F(&)U9BP**PD)
 M"0D@("`@(FYO('-U8V@@=7-E<B`E<R(L('5S97(I.PHK("`@("`@("`@("`@
 M"0D)97)R;F\@/2`P.R`@"BL)"0D);&]G97)R;W(H8G5F*3L**PD)"0ED:64@
 M*#`I.PHK"0D)?0HK"0E]"BL)?0H@"BL):68@*&=R;W5P("$]($Y53$PI('L*
 M*PD):68@*&ES9&EG:70H*F=R;W5P*2D@>PHK"0D)9VED(#T@*&=I9%]T*7-T
 M<G1O;"AG<F]U<"P@)F5N9'`L(#`I.PHK"0D):68@*"IE;F1P("$]("=<,"<I
 M"BL)("`@(`D)9V]T;R!G971G<F]U<#L**PD)?2!E;'-E('L**V=E=&=R;W5P
 M.@HK"0D):68@*"AG<B`](&=E=&=R;F%M*&=R;W5P*2D@(3T@3E5,3"D@>PHK
 M"0D)"6=I9"`](&=R+3YG<E]G:60["BL)"0E](&5L<V4@>PHK"0D)"6-H87(@
 M8G5F6TU!6%!!5$A,14Y=.PHK"0D)"2AV;VED*7-N<')I;G1F*&)U9BP@<VEZ
 M96]F(&)U9BP**PD)"0D@("`@(FYO('-U8V@@9W)O=7`@)7,B+"!G<F]U<"D[
 M"BL)"0D)97)R;F\@/2`P.PHK"0D)"6QO9V5R<F]R*&)U9BD["BL)"0D)9&EE
 M*#`I.PHK"0D)?0HK"0E]"BL)?0HK"BL):68@*&%C8V5S<R`H<F]O="P@1E]/
 M2R!\(%)?3TLI*2!["BL)"6-H87(@8G5F6TU!6%!!5$A,14Y=.PHK"0DH=F]I
 M9"ES;G!R:6YT9BAB=68L('-I>F5O9B!B=68L(")#86YN;W0@86-C97-S("5S
 M(BP@<F]O="D["BL)"65R<FYO(#T@,#L**PD);&]G97)R;W(@*&)U9BD["BL)
 M"61I92`H,"D["BL)?0HK"B`)8V]N<V9I;&4N9E]T>7!E(#T@1E]#3TY33TQ%
 M.PH@"2AV;VED*7-T<F-P>2AC;VYS9FEL92YF7W5N+F9?9FYA;64L(&-T='DI
 M.PH@"2AV;VED*6=E=&AO<W1N86UE*$QO8V%L2&]S=$YA;64L('-I>F5O9BA,
 M;V-A;$AO<W1.86UE*2D["B`)3&]C86Q(;W-T3F%M95MS:7IE;V8H3&]C86Q(
 M;W-T3F%M92D@+2`Q72`]("=<,"<["D!`("TS-C4L."`K-#,W+#4P($!`"B`)
 M"7)E861F9'-;;F9D<UTN9F0@/2!F=6YI>%MJ*RM=.PH@"0ER96%D9F1S6VYF
 M9',K*UTN979E;G1S(#T@4$],3$E.('P@4$],3%!223L*(`E]"B`**PDO*B`*
 M*PD@*B!!;&P@9FEL97,@87)E(&]P96XL('=E(&-A;B!D<F]P('!R:79I;&5G
 M97,@86YD(&-H<F]O=`HK"2`J+PHK"61P<FEN=&8@*")A='1E;7!T('1O(&-H
 M<F]O="!T;R`E<UQN(BP@<F]O="D[("`**PEI9B`H8VAR;V]T("AR;V]T*2D@
 M>PHK"0EC:&%R(&)U9EM-05A0051(3$5.73L**PD)*'9O:60I<VYP<FEN=&8H
 M8G5F+"!S:7IE;V8@8G5F+"`**PD)("`@(")F86EL960@=&\@8VAR;V]T('1O
 M("5S(BP@<F]O="D["BL)"65R<FYO(#T@,#L**PD);&]G97)R;W(@*&)U9BD[
 M"BL)"61I92@P*3L**PE]"BL)9'!R:6YT9B`H(F%T=&5M<'0@=&\@<V5T($=)
 M1"]%1TE$('1O("5D7&XB+"!G:60I.R`@"BL):68@*'-E=&=I9"`H9VED*2!\
 M?"!S971E9VED("AG:60I*2!["BL)"6-H87(@8G5F6TU!6%!!5$A,14Y=.PHK
 M"0DH=F]I9"ES;G!R:6YT9BAB=68L('-I>F5O9B!B=68L(`HK"0D@("`@(F9A
 M:6QE9"!T;R!S970@9VED('1O("5D(BP@9VED*3L**PD)97)R;F\@/2`P.PHK
 M"0EL;V=E<G)O<B`H8G5F*3L**PD)9&EE*#`I.PHK"7T**PED<')I;G1F("@B
 M871T96UP="!T;R!S970@54E$+T55240@=&\@)61<;B(L('5I9"D[("`**PEI
 M9B`H<V5T=6ED("AU:60I('Q\('-E=&5U:60@*'5I9"DI('L**PD)8VAA<B!B
 M=69;34%84$%42$Q%3ET["BL)"2AV;VED*7-N<')I;G1F*&)U9BP@<VEZ96]F
 M(&)U9BP@"BL)"2`@("`B9F%I;&5D('1O('-E="!U:60@=&\@)60B+"!U:60I
 M.PHK"0EE<G)N;R`](#`["BL)"6QO9V5R<F]R("AB=68I.PHK"0ED:64H,"D[
 M"BL)?0HK"BL)+RH@"BL)("H@5V4@8V%N;F]T(&1E=&%C:"!F<F]M('1H92!T
 M97)M:6YA;"!B969O<F4@=V4@87)E('-U<F4@=V4@=V]N)W0@"BL)("H@:&%V
 M92!A(&9A=&%L(&5R<F]R+"!B96-A=7-E(&5R<F]R(&UE<W-A9V4@=V]U;&0@
 M;F]T(&=O('1O('1H90HK"2`J('1E<FUI;F%L(&%N9"!W;W5L9"!N;W0@8F4@
 M;&]G9V5D(&)E8V%U<V4@<WES;&]G9"!D:65S+B`**PD@*B!!;&P@9&EE*"D@
 M8V%L;',@87)E(&)E:&EN9"!U<RP@=V4@8V%N(&-A;&P@9&%E;6]N*"D**PD@
 M*B\**PEI9B`H(41E8G5G*2!["BL)"2AV;VED*61A96UO;B@P+"`P*3L**PD)
 M9&%E;6]N:7IE9"`](#$["BL)?0HK"B`)9F]R("@[.RD@>PH@"0EI;G0@<G8[
 M"B`*(`D)<G8@/2!P;VQL*')E861F9',L(&YF9',L($E.1E1)32D["D!`("TQ
 M,#`P+#$P("LQ,3$T+#$T($!`"B`)"2`@("!S:7IE;V8H8G5F*2P@(G-Y<VQO
 M9V0Z("5S.B`E<R(L('1Y<&4L('-T<F5R<F]R*&5R<FYO*2D["B`)96QS90H@
 M"0DH=F]I9"ES;G!R:6YT9BAB=68L('-I>F5O9BAB=68I+"`B<WES;&]G9#H@
 M)7,B+"!T>7!E*3L*(`EE<G)N;R`](#`["BT)9'!R:6YT9B@B)7-<;B(L(&)U
 M9BD["BT);&]G;7-G*$Q/1U]365-,3T=\3$]'7T524BP@8G5F+"!,;V-A;$AO
 M<W1.86UE+"!!1$1$051%*3L**PEI9B`H9&%E;6]N:7IE9"D@"BL)"6QO9VUS
 M9RA,3T=?4UE33$]'?$Q/1U]%4E(L(&)U9BP@3&]C86Q(;W-T3F%M92P@041$
 M1$%412D["BL):68@*"%D865M;VYI>F5D("8F($1E8G5G*0HK"0ED<')I;G1F
 M*"(E<UQN(BP@8G5F*3L**PEI9B`H(61A96UO;FEZ960@)B8@(41E8G5G*0HK
 M"0EP<FEN=&8H(B5S7&XB+"!B=68I.PH@?0H@"B!V;VED"B!D:64H<VEG;F\I
 M"D!`("TQ,#(Q+#@@*S$Q,SDL,3(@0$`*(`D)9'!R:6YT9B@B<WES;&]G9#H@
 M97AI=&EN9R!O;B!S:6=N86P@)61<;B(L('-I9VYO*3L*(`D)*'9O:60I<VYP
 M<FEN=&8H8G5F+"!S:7IE;V8@8G5F+"`B97AI=&EN9R!O;B!S:6=N86P@)60B
 M+"!S:6=N;RD["B`)"65R<FYO(#T@,#L*(`D);&]G97)R;W(H8G5F*3L**PE]
 M(&5L<V4@>PHK"0DH=F]I9"ES;G!R:6YT9BAB=68L('-I>F5O9B!B=68L(")F
 M871A;"!E<G)O<BP@97AI='1I;F<B*3L**PD)97)R;F\@/2`P.PHK"0EL;V=E
 M<G)O<BAB=68I.PH@"7T*(`EF;W(@*'`@/2!,;V=0871H<SL@<"`F)B`J<#L@
 M<"LK*0H@"0EU;FQI;FLH*G`I.PH@"65X:70H,"D["D!`("TQ,3DS+#@@*S$S
 M,34L-3<@0$`*(`DO*B!C;&5A<B!O=70@9FEL92!E;G1R>2`J+PH@"6UE;7-E
 M="AF+"`P+"!S:7IE;V8H*F8I*3L*(`EF;W(@*&D@/2`P.R!I(#P]($Q/1U].
 M1D%#24Q)5$E%4SL@:2LK*0H@"0EF+3YF7W!M87-K6VE=(#T@24Y415).04Q?
 M3D]04DD["BL)"BL)+RH@"BL)("H@5&AE<F4@<VAO=6QD(&YO="!B92!A;GD@
 M<W!A8V4@8F5F;W)E('1H92!L;V=G:6YG(&9A8VEL:71Y+@HK"2`J($-H96-K
 M('1H:7,@:7,@;VMA>2P@8V]M<&QA:6X@86YD(&9I>"!I9B!I="!I<R!N;W0N
 M"BL)("HO"BL)<2`](&QI;F4["BL)=VAI;&4@*"IQ("8F(&ES8FQA;FLH*G$I
 M*2`**PD)<2LK.PHK"2\J('$@:7,@870@=&AE(&9I<G-T(&-H87(@;V8@=&AE
 M(&QO9V=I;F<@9F%C:6QI='D@*B\**PEI9B`H*G$@)B8@*"HH<2`M(#$I(#T]
 M("<@)RDI('L**PD)*'9O:60I<VYP<FEN=&8H96)U9BP@<VEZ96]F(&5B=68L
 M"BL)"2`@("`B5V%R;FEN9SH@7"(E<UPB('-P86-E(&)E9F]R92!T:&4@;&]G
 M9VEN9R!F86-I;&ET>2(L(`HK"0D@("`@;&EN92D["BL)"6QO9V5R<F]R*&5B
 M=68I.PHK"0DO*B!&:7@Z('-T<FEP(&%L;"!S<&%C97,O=&%B<R!B969O<F4@
 M=&AE(&QO9V=I;F<@9F%C:6QI='D@*B\**PD);&EN92`]('$[(`HK"7T**PHK
 M"2\J(`HK"2`J(%1H97)E('-H;W5L9"!B92!A="!L96%S="!O;F4@=&%B(&%F
 M=&5R('1H92!L;V=G:6YG(&9A8VEL:71Y(`HK"2`J($-H96-K('1H:7,@:7,@
 M;VMA>2P@86YD(&-O;7!L86EN(&%N9"!F:7@@:68@:70@:7,@;F]T+@HK"2`J
 M+PHK"7$@/2!L:6YE("L@<W1R;&5N*&QI;F4I.PHK"7=H:6QE("@A:7-B;&%N
 M:R@J<2D@)B8@*'$@(3T@;&EN92DI"BL)"7$M+3L**PEI9B`H*'$@/3T@;&EN
 M92D@)B8@<W1R;&5N*&QI;F4I*2![(`HK"0DO*B!.;R!T86)S(&]R('-P86-E
 M(&EN(&$@;F]N(&5M<'1Y(&QI;F4Z(&-O;7!L86EN("HO"BL)"2AV;VED*7-N
 M<')I;G1F*&5B=68L('-I>F5O9B!E8G5F+`HK"0D@("`@(D5R<F]R.B!<(B5S
 M7"(@;&]G9VEN9R!F86-I;&ET>2!O<B!L;V<@=&%R9V5T(&UI<W-I;F<B+"`*
 M*PD)("`@(&QI;F4I.PHK"0EL;V=E<G)O<BAE8G5F*3L**PE]"BL)"BL)+RH@
 M<2!I<R!A="!T:&4@96YD(&]F('1H92!B;&%N:R!B971W965N('1H92!T=V\@
 M9FEE;&1S("HO"BL)=VAI;&4@*&ES8FQA;FLH*G$I("8F("AQ("$](&QI;F4I
 M*0HK"0EQ+2T["BL**PDO*B!Q(&ES(&%T('1H92!B96=I;FYI;F<@;V8@=&AE
 M(&)L86YK(&)E='=E96X@=&AE('1W;R!F:65L9',@*B\**PEI9B`H*BAQ("L@
 M,2D@/3T@)R`G*2![(`HK"0DO*B!,;V=G:6YG(&9A8VEL:71Y(&ES(&9O;&QO
 M=V5D(&)Y(&$@<W!A8V4Z(&-O;7!L86EN+BXN("HO"BL)"2AV;VED*7-N<')I
 M;G1F*&5B=68L('-I>F5O9B!E8G5F+`HK"0D@("`@(E=A<FYI;F<Z(%PB)7-<
 M(B!L;V=G:6YG(&9A8VEL:71Y(&YO="!F;VQL;W=E9"!B>2!A('1A8B(L(`HK
 M"0D@("`@;&EN92D["BL)"6QO9V5R<F]R*&5B=68I.PHK"0DO*B`N+BX@86YD
 M(&9I>"!T:&4@<')O8FQE;3H@<F5P;&%C92!A;&P@<W!A8V5S(&)Y('1A8G,@
 M*B\**PD)9F]R("@[("IQ.R!Q*RLI"BL)"0EI9B`H*G$@/3T@)R`G*0HK"0D)
 M"2IQ/2=<="<["0HK"7T*(`H@"2\J('-C86X@=&AR;W5G:"!T:&4@;&ES="!O
 M9B!S96QE8W1O<G,@*B\*(`EF;W(@*'`@/2!L:6YE.R`J<"`F)B`J<"`A/2`G
 *7'0G.RD@>PH@"G,@
 `
 end

 -- 
 Emmanuel Dreyfus
 manu@netbsd.org

From: christos@zoulas.com (Christos Zoulas)
To: manu@netbsd.org (Emmanuel Dreyfus), gnats-bugs@netbsd.org,
	ljt@alum.mit.edu
Cc:  
Subject: Re: bin/13400 new patch for syslogd
Date: Thu, 12 Jul 2001 18:17:52 -0400

 On Jul 13, 12:06am, manu@netbsd.org (Emmanuel Dreyfus) wrote:
 -- Subject: bin/13400 new patch for syslogd

 | Here is a new patch for syslogd. It seems the last one was garbled,
 | hence I uuencoded it to prevent any problem.

 1. the error messages should be "Cannot find user `%s'" etc.
 2. logerror() should turn into a printf() like varargs function. It is
    too messy to build strings with sprintf locally everywhere.

 christos

From: manu@netbsd.org (Emmanuel Dreyfus)
To: gnats-bugs@netbsd.org, ljt@alum.mit.edu, christos@zoulas.com
Cc:  
Subject: bin/13400
Date: Sat, 14 Jul 2001 00:05:37 +0200

 As christos requested, I removed all snprintf(buf...). It's true it's
 much nicer now. There is still a lot of bad stuff with errno because
 logerror clears it, so it has to be saved before calling logerror at a
 few places. 

 I don't understand why we really have to clear errno in logerror. Maybe
 we could remove this? This will clean up this kinfd of lines:

          int serrno = errno;
          logerror("cannot create %s", *pp);
          errno = serrno;

 And maybe it would be nice to have an errno argument to logerror, so
 that we can transmit errno or 0. That way, we would not have to clear
 errno before calling logerror, like this lines:

                errno = 0;  /* already in msg */
                logerror(p);

 We would do logerror(p, 0) instead, and logerror(p, errno) when
 appropriate.

 Opinions?

 begin 644 syslogd.patch
 cvs server: Diffing .
 M/R!S>7-L;V=D"C\@<WES;&]G9"YC870X"C\@<WES;&]G+F-O;F8N8V%T-0I)
 M;F1E>#H@<WES;&]G9"XX"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I
 M;&4Z("]C=G-R;V]T+V)A<V5S<F,O=7-R+G-B:6XO<WES;&]G9"]S>7-L;V=D
 M+C@L=@IR971R:65V:6YG(')E=FES:6]N(#$N,C`*9&EF9B`M530@+7(Q+C(P
 M('-Y<VQO9V0N.`HM+2T@<WES;&]G9"XX"3(P,#$O,#4O,#,@,38Z-#4Z,#$)
 M,2XR,`HK*RL@<WES;&]G9"XX"3(P,#$O,#<O,3,@,C$Z-3DZ,3,*0$`@+30U
 M+#@@*S0U+#$W($!`"B`N0FL@+7=O<F1S"B`N3W`@1FP@9B!!<B!C;VYF:6=?
 M9FEL90H@+D5K"B`N0FL@+7=O<F1S"BLN3W`@1FP@=2!!<B!U<V5R"BLN16L*
 M*RY":R`M=V]R9',**RY/<"!&;"!G($%R('5S97(**RY%:PHK+D)K("UW;W)D
 M<PHK+D]P($9L('0@07(@8VAR;V]T7V1I<@HK+D5K"BLN0FL@+7=O<F1S"B`N
 M3W`@1FP@;2!!<B!M87)K7VEN=&5R=F%L"B`N16L*("Y":R`M=V]R9',*("Y/
 M<"!&;"!0($%R(&9I;&5?;&ES=`I`0"`M-CDL."`K-S@L,C$@0$`*("Y)="!&
 M;"!F"B!3<&5C:69Y('1H92!P871H;F%M92!O9B!A;B!A;'1E<FYA=&EV92!C
 M;VYF:6=U<F%T:6]N(&9I;&4["B!T:&4@9&5F875L="!I<PH@+E!A("]E=&,O
 M<WES;&]G+F-O;F8@+@HK+DET($9L('4@07(@=7-E<@HK4V5T(%5)1"!T;R`*
 M*RY!<B!U<V5R(`HK869T97(@=&AE('-O8VME=',@86YD(&QO9R!F:6QE<R!H
 M879E(&)E96X@;W!E;BX**RY)="!&;"!G($%R(&=R;W5P"BM3970@1TE$('1O
 M(`HK+D%R(&=R;W5P(`HK869T97(@=&AE('-O8VME=',@86YD(&QO9R!F:6QE
 M<R!H879E(&)E96X@;W!E;BX**RY)="!&;"!T($%R(&-H<F]O=%]D:7(**RY8
 M<B!C:')O;W0@,@HK=&\**RY!<B!C:')O;W1?9&ER"BMA9G1E<B!T:&4@<V]C
 M:V5T<R!A;F0@;&]G(&9I;&5S(`EH879E(&)E96X@;W!E;BX*("Y)="!&;"!M
 M"B!396QE8W0@=&AE(&YU;6)E<B!O9B!M:6YU=&5S(&)E='=E96X@8&!M87)K
 M)R<@;65S<V%G97,["B!T:&4@9&5F875L="!I<R`R,"!M:6YU=&5S+@H@+DET
 M($9L(',*26YD97@Z('-Y<VQO9V0N8PH]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M"E)#4R!F:6QE.B`O8W9S<F]O="]B87-E<W)C+W5S<BYS8FEN+W-Y<VQO9V0O
 M<WES;&]G9"YC+'8*<F5T<FEE=FEN9R!R979I<VEO;B`Q+C0T"F1I9F8@+54T
 M("UR,2XT-"!S>7-L;V=D+F,*+2TM('-Y<VQO9V0N8PDR,#`Q+S`S+S(Q(#$W
 M.C`R.C0S"3$N-#0**RLK('-Y<VQO9V0N8PDR,#`Q+S`W+S$S(#(Q.C4Y.C$V
 M"D!`("TQ,#0L."`K,3`T+#$U($!`"B`C:6YC;'5D92`\<W1R:6YG+F@^"B`C
 M:6YC;'5D92`\=6YI<W1D+F@^"B`C:6YC;'5D92`\=71M<"YH/@H@(VEN8VQU
 M9&4@/'5T:6PN:#X**R-I;F-L=61E(#QP=V0N:#X**R-I;F-L=61E(#QG<G`N
 M:#X**R-I9F1E9B!?7U-41$-?7PHK(VEN8VQU9&4@/'-T9&%R9RYH/@HK(V5L
 M<V4**R-I;F-L=61E(#QV87)A<F=S+F@^"BLC96YD:68*("-I;F-L=61E(")P
 M871H;F%M97,N:"(*(`H@(V1E9FEN92!365-,3T=?3D%-15,*("-I;F-L=61E
 M(#QS>7,O<WES;&]G+F@^"D!`("TQ.#4L."`K,3DR+#D@0$`*('-T<G5C=`EF
 M:6QE9"`J1FEL97,["B!S=')U8W0)9FEL960@8V]N<V9I;&4["B`*(&EN=`E$
 M96)U9SL)"0DO*B!D96)U9R!F;&%G("HO"BMI;G0)9&%E;6]N:7IE9"`](#`[
 M"0DO*B!W92!A<F4@;F]T(&1A96UO;FEZ960@>65T("HO"B!C:&%R"4QO8V%L
 M2&]S=$YA;65;34%82$]35$Y!345,14XK,5T["2\J(&]U<B!H;W-T;F%M92`J
 M+PH@8VAA<@DJ3&]C86Q$;VUA:6X["0DO*B!O=7(@;&]C86P@9&]M86EN(&YA
 M;64@*B\*(&EN=`DJ9FEN970@/2!.54Q,.PD)"2\J($EN=&5R;F5T(&1A=&%G
 M<F%M('-O8VME=',@*B\*(&EN=`E);FET:6%L:7IE9"`](#`["2\J('-E="!W
 M:&5N('=E(&AA=F4@:6YI=&EA;&EZ960@;W5R<V5L=F5S("HO"D!`("TR,#0L
 M.2`K,C$R+#D@0$`*('9O:60)9G!R:6YT;&]G(%]?4"@H<W1R=6-T(&9I;&5D
 M("HL(&EN="P@8VAA<B`J*2D["B!I;G0)9V5T;7-G8G5F<VEZ92!?7U`H*'9O
 M:60I*3L*(&EN="H)<V]C:W-E='5P(%]?4"@H:6YT*2D["B!V;VED"6EN:70@
 M7U]0*"AI;G0I*3L*+79O:60);&]G97)R;W(@7U]0*"AC:&%R("HI*3L**W9O
 M:60);&]G97)R;W(@7U]0*"AC;VYS="!C:&%R("HL("XN+BDI.PH@=F]I9`EL
 M;V=M<V<@7U]0*"AI;G0L(&-H87(@*BP@8VAA<B`J+"!I;G0I*3L*('9O:60)
 M<')I;G1L:6YE(%]?4"@H8VAA<B`J+"!C:&%R("HI*3L*('9O:60)<')I;G1S
 M>7,@7U]0*"AC:&%R("HI*3L*('9O:60)<F5A<&-H:6QD(%]?4"@H:6YT*2D[
 M"D!`("TR,C<L,3,@*S(S-2PS-R!`0`H@"7-T<G5C="!S;V-K861D<E]U;B!S
 M=6YX+"!F<F]M=6YI>#L*(`ES=')U8W0@<V]C:V%D9')?<W1O<F%G92!F<F]M
 M:6YE=#L*(`EC:&%R("IP+"`J;&EN92P@*BIP<#L*(`ES=')U8W0@<&]L;&9D
 M("IR96%D9F1S.PHK"75I9%]T('5I9"`](#`["BL)9VED7W0@9VED(#T@,#L*
 M*PEC:&%R("IU<V5R(#T@3E5,3#L**PEC:&%R("IG<F]U<"`]($Y53$P["BL)
 M8VAA<B`J<F]O="`]("(O(CL**PEC:&%R("IE;F1P.PHK"7-T<G5C="!G<F]U
 M<"`@("IG<CL**PES=')U8W0@<&%S<W=D("`J<'<["BL)"B`*(`DH=F]I9"ES
 M971L;V-A;&4H3$-?04Q,+"`B(BD["B`*+0EW:&EL92`H*&-H(#T@9V5T;W!T
 M*&%R9V,L(&%R9W8L(")D<V8Z;3IP.E`Z(BDI("$]("TQ*0HK"7=H:6QE("@H
 M8V@@/2!G971O<'0H87)G8RP@87)G=BP@(F1S9CIM.G`Z4#IU.F<Z=#HB*2D@
 M(3T@+3$I"B`)"7-W:71C:"AC:"D@>PHK"0EC87-E("=U)SH**PD)"75S97(@
 M/2!O<'1A<F<["BL)"0EI9B`H*G5S97(@/3T@)UPP)RD**PD)"0EU<V%G92@I
 M.PHK"0D)8G)E86L["BL)"6-A<V4@)V<G.@HK"0D)9W)O=7`@/2!O<'1A<F<[
 M"BL)"0EI9B`H*F=R;W5P(#T]("=<,"<I"BL)"0D)=7-A9V4H*3L**PD)"6)R
 M96%K.PHK"0EC87-E("=T)SH**PD)"7)O;W0@/2!O<'1A<F<["BL)"0EI9B`H
 M*G)O;W0@/3T@)UPP)RD**PD)"0EU<V%G92@I.PHK"0D)8G)E86L["B`)"6-A
 M<V4@)V0G.@D)+RH@9&5B=6<@*B\*(`D)"41E8G5G*RL["B`)"0EB<F5A:SL*
 M(`D)8V%S92`G9B<Z"0DO*B!C;VYF:6=U<F%T:6]N(&9I;&4@*B\*0$`@+3(U
 M.2PQ,R`K,CDQ+#0Y($!`"B`)"7T*(`EI9B`H*&%R9V,@+3T@;W!T:6YD*2`A
 M/2`P*0H@"0EU<V%G92@I.PH@"BT):68@*"%$96)U9RD*+0D)*'9O:60I9&%E
 M;6]N*#`L(#`I.PHM"65L<V4*+0D)<V5T;&EN96)U9BAS=&1O=70I.PHK"7-E
 M=&QI;F5B=68H<W1D;W5T*3L**PHK"6EF("AU<V5R("$]($Y53$PI('L**PD)
 M:68@*&ES9&EG:70H*G5S97(I*2!["BL)"0EU:60@/2`H=6ED7W0I<W1R=&]L
 M*'5S97(L("9E;F1P+"`P*3L**PD)"6EF("@J96YD<"`A/2`G7#`G*0HK"2`@
 M("`)"6=O=&\@9V5T=7-E<CL**PD)?2!E;'-E('L**V=E='5S97(Z"BL)"0EI
 M9B`H*'!W(#T@9V5T<'=N86TH=7-E<BDI("$]($Y53$PI('L**PD)"0EU:60@
 M/2!P=RT^<'=?=6ED.PHK"0D)?2!E;'-E('L**R`@("`@("`@("`@"65R<FYO
 M(#T@,#L@(`HK"0D)"6QO9V5R<F]R*")N;R!S=6-H('5S97(@)7,B+"!U<V5R
 M*3L**PD)"0ED:64@*#`I.PHK"0D)?0HK"0E]"BL)?0H@"BL):68@*&=R;W5P
 M("$]($Y53$PI('L**PD):68@*&ES9&EG:70H*F=R;W5P*2D@>PHK"0D)9VED
 M(#T@*&=I9%]T*7-T<G1O;"AG<F]U<"P@)F5N9'`L(#`I.PHK"0D):68@*"IE
 M;F1P("$]("=<,"<I"BL)("`@(`D)9V]T;R!G971G<F]U<#L**PD)?2!E;'-E
 M('L**V=E=&=R;W5P.@HK"0D):68@*"AG<B`](&=E=&=R;F%M*&=R;W5P*2D@
 M(3T@3E5,3"D@>PHK"0D)"6=I9"`](&=R+3YG<E]G:60["BL)"0E](&5L<V4@
 M>PHK"0D)"65R<FYO(#T@,#L**PD)"0EL;V=E<G)O<B@B;F\@<W5C:"!G<F]U
 M<"`E<R(L(&=R;W5P*3L**PD)"0ED:64H,"D["BL)"0E]"BL)"7T**PE]"BL*
 M*PEI9B`H86-C97-S("AR;V]T+"!&7T]+('P@4E]/2RDI('L**PD);&]G97)R
 M;W(@*")#86YN;W0@86-C97-S("5S(BP@<F]O="D["BL)"61I92`H,"D["BL)
 M?0HK"B`)8V]N<V9I;&4N9E]T>7!E(#T@1E]#3TY33TQ%.PH@"2AV;VED*7-T
 M<F-P>2AC;VYS9FEL92YF7W5N+F9?9FYA;64L(&-T='DI.PH@"2AV;VED*6=E
 M=&AO<W1N86UE*$QO8V%L2&]S=$YA;64L('-I>F5O9BA,;V-A;$AO<W1.86UE
 M*2D["B`)3&]C86Q(;W-T3F%M95MS:7IE;V8H3&]C86Q(;W-T3F%M92D@+2`Q
 M72`]("=<,"<["D!`("TS,3$L,3(@*S,W.2PY($!`"B`)"6EF("AF=6YI>%MJ
 M72`\(#`@?'P@8FEN9"AF=6YI>%MJ72P*(`D)("`@("AS=')U8W0@<V]C:V%D
 M9'(@*BDF<W5N>"P@4U5.7TQ%3B@F<W5N>"DI(#P@,"!\?`H@"0D@("`@8VAM
 M;V0H*G!P+"`P-C8V*2`\(#`I('L*(`D)"6EN="!S97)R;F\@/2!E<G)N;SL*
 M+0D)"2AV;VED*7-N<')I;G1F*&QI;F4L('-I>F5O9B!L:6YE+`HM"0D)("`@
 M(")C86YN;W0@8W)E871E("5S(BP@*G!P*3L*+0D)"65R<FYO(#T@<V5R<FYO
 M.PHM"0D);&]G97)R;W(H;&EN92D["BL)"0EL;V=E<G)O<B@B8V%N;F]T(&-R
 M96%T92`E<R(L("IP<"D["B`)"0EE<G)N;R`]('-E<G)N;SL*(`D)"61P<FEN
 M=&8H(F-A;FYO="!C<F5A=&4@)7,@*"5D*5QN(BP@*G!P+"!E<G)N;RD["B`)
 M"0ED:64H,"D["B`)"7T*0$`@+3,V-2PX("LT,S`L,S@@0$`*(`D)<F5A9&9D
 M<UMN9F1S72YF9"`](&9U;FEX6VHK*UT["B`)"7)E861F9'-;;F9D<RLK72YE
 M=F5N=',@/2!03TQ,24X@?"!03TQ,4%)).PH@"7T*(`HK"2\J(`HK"2`J($%L
 M;"!F:6QE<R!A<F4@;W!E;BP@=V4@8V%N(&1R;W`@<')I=FEL96=E<R!A;F0@
 M8VAR;V]T"BL)("HO"BL)9'!R:6YT9B`H(F%T=&5M<'0@=&\@8VAR;V]T('1O
 M("5S7&XB+"!R;V]T*3L@(`HK"6EF("AC:')O;W0@*')O;W0I*2!["BL)"6QO
 M9V5R<F]R("@B9F%I;&5D('1O(&-H<F]O="!T;R`E<R(L(')O;W0I.PHK"0ED
 M:64H,"D["BL)?0HK"61P<FEN=&8@*")A='1E;7!T('1O('-E="!'240O14=)
 M1"!T;R`E9%QN(BP@9VED*3L@(`HK"6EF("AS971G:60@*&=I9"D@?'P@<V5T
 M96=I9"`H9VED*2D@>PHK"0EL;V=E<G)O<B`H(F9A:6QE9"!T;R!S970@9VED
 M('1O("5D(BP@9VED*3L**PD)9&EE*#`I.PHK"7T**PED<')I;G1F("@B871T
 M96UP="!T;R!S970@54E$+T55240@=&\@)61<;B(L('5I9"D[("`**PEI9B`H
 M<V5T=6ED("AU:60I('Q\('-E=&5U:60@*'5I9"DI('L**PD);&]G97)R;W(@
 M*")F86EL960@=&\@<V5T('5I9"!T;R`E9"(L('5I9"D["BL)"61I92@P*3L*
 M*PE]"BL**PDO*B`**PD@*B!792!C86YN;W0@9&5T86-H(&9R;VT@=&AE('1E
 M<FUI;F%L(&)E9F]R92!W92!A<F4@<W5R92!W92!W;VXG="`**PD@*B!H879E
 M(&$@9F%T86P@97)R;W(L(&)E8V%U<V4@97)R;W(@;65S<V%G92!W;W5L9"!N
 M;W0@9V\@=&\@=&AE"BL)("H@=&5R;6EN86P@86YD('=O=6QD(&YO="!B92!L
 M;V=G960@8F5C875S92!S>7-L;V=D(&1I97,N(`HK"2`J($%L;"!D:64H*2!C
 M86QL<R!A<F4@8F5H:6YD('5S+"!W92!C86X@8V%L;"!D865M;VXH*0HK"2`J
 M+PHK"6EF("@A1&5B=6<I('L**PD)*'9O:60I9&%E;6]N*#`L(#`I.PHK"0ED
 M865M;VYI>F5D(#T@,3L**PE]"BL*(`EF;W(@*#L[*2!["B`)"6EN="!R=CL*
 M(`H@"0ER=B`]('!O;&PH<F5A9&9D<RP@;F9D<RP@24Y&5$E-*3L*0$`@+30P
 M,BPQ-2`K-#DW+#$P($!`"B`)"0EI9B`H:2`^(#`I('L*(`D)"0EL:6YE6VE=
 M(#T@)UPP)SL*(`D)"0EP<FEN=&QI;F4H3&]C86Q(;W-T3F%M92P@;&EN92D[
 M"B`)"0E](&5L<V4@:68@*&D@/"`P("8F(&5R<FYO("$]($5)3E12*2!["BT)
 M"0D)8VAA<B!B=69;34%84$%42$Q%3ET["BT)"0D):6YT('-E<G)N;R`](&5R
 M<FYO.PHM"BT)"0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8@8G5F+`HM
 M"0D)"2`@("`B<F5C=F9R;VT@=6YI>"`E<R(L("IP<"D["BT)"0D)97)R;F\@
 M/2!S97)R;F\["BT)"0D);&]G97)R;W(H8G5F*3L**PD)"0DO*B!I;G0@<V5R
 M<FYO(#T@97)R;F\[("HO("\J(%A86"!5<V5L97-S/R`J+PHK"0D)"6QO9V5R
 M<F]R*")R96-V9G)O;2!U;FEX("5S(BP@*G!P*3L*(`D)"7T*(`D)?0H@"0EI
 M9B`H9FEN970@)B8@(5-E8W5R94UO9&4I('L*(`D)"69O<B`H:B`](#`[(&H@
 M/"`J9FEN970[(&HK*RD@>PI`0"`M.3@Y+#0P("LQ,#<Y+#8Q($!`"B`O*@H@
 M("H@4')I;G0@<WES;&]G9"!E<G)O<G,@<V]M92!P;&%C92X*("`J+PH@=F]I
 M9`HM;&]G97)R;W(H='EP92D*+0EC:&%R("IT>7!E.PHK;&]G97)R;W(H8V]N
 M<W0@8VAA<B`J9FUT+"`N+BXI"B!["BL)=F%?;&ES="!A<#L**PEC:&%R('1M
 M<&)U9ELQ,#!=.PH@"6-H87(@8G5F6S$P,%T["B`**R-I9F1E9B!?7U-41$-?
 M7PHK"79A7W-T87)T*&%P+"!F;70I.PHK(V5L<V4**PEV85]S=&%R="AA<"D[
 M"BLC96YD:68**PHK"2AV;VED*79S;G!R:6YT9BAT;7!B=68L('-I>F5O9BAT
 M;7!B=68I+"!F;70L(&%P*3L**PHK"79A7V5N9"AA<"D["BL*(`EI9B`H97)R
 M;F\I"BT)"2AV;VED*7-N<')I;G1F*&)U9BP*+0D)("`@('-I>F5O9BAB=68I
 M+"`B<WES;&]G9#H@)7,Z("5S(BP@='EP92P@<W1R97)R;W(H97)R;F\I*3L*
 M*PD)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8H8G5F*2P@(G-Y<VQO9V0Z
 M("5S.B`E<R(L(`HK"0D@("`@=&UP8G5F+"!S=')E<G)O<BAE<G)N;RDI.PH@
 M"65L<V4*+0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8H8G5F*2P@(G-Y
 M<VQO9V0Z("5S(BP@='EP92D["BL)"2AV;VED*7-N<')I;G1F*&)U9BP@<VEZ
 M96]F*&)U9BDL(")S>7-L;V=D.B`E<R(L('1M<&)U9BD["BL*(`EE<G)N;R`]
 M(#`["BT)9'!R:6YT9B@B)7-<;B(L(&)U9BD["BT);&]G;7-G*$Q/1U]365-,
 M3T=\3$]'7T524BP@8G5F+"!,;V-A;$AO<W1.86UE+"!!1$1$051%*3L**PHK
 M"6EF("AD865M;VYI>F5D*2`**PD);&]G;7-G*$Q/1U]365-,3T=\3$]'7T52
 M4BP@8G5F+"!,;V-A;$AO<W1.86UE+"!!1$1$051%*3L**PEI9B`H(61A96UO
 M;FEZ960@)B8@1&5B=6<I"BL)"61P<FEN=&8H(B5S7&XB+"!B=68I.PHK"6EF
 M("@A9&%E;6]N:7IE9"`F)B`A1&5B=6<I"BL)"7!R:6YT9B@B)7-<;B(L(&)U
 M9BD["BL**PER971U<FX["B!]"B`*('9O:60*(&1I92AS:6=N;RD*(`EI;G0@
 M<VEG;F\["B!["B`)<W1R=6-T(&9I;&5D("IF.PHM"6-H87(@8G5F6S$P,%TL
 M("HJ<#L**PEC:&%R("HJ<#L*(`H@"69O<B`H9B`]($9I;&5S.R!F("$]($Y5
 M3$P[(&8@/2!F+3YF7VYE>'0I('L*(`D)+RH@9FQU<V@@86YY('!E;F1I;F<@
 M;W5T<'5T("HO"B`)"6EF("AF+3YF7W!R979C;W5N="D*(`D)"69P<FEN=&QO
 M9RAF+"`P+"`H8VAA<B`J*4Y53$PI.PH@"7T*(`EI9B`H<VEG;F\I('L*(`D)
 M9'!R:6YT9B@B<WES;&]G9#H@97AI=&EN9R!O;B!S:6=N86P@)61<;B(L('-I
 M9VYO*3L*+0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8@8G5F+"`B97AI
 M=&EN9R!O;B!S:6=N86P@)60B+"!S:6=N;RD["BL)"65R<FYO(#T@,#L**PD)
 M;&]G97)R;W(H(G-Y<VQO9V0Z(&5X:71I;F<@;VX@<VEG;F%L("5D7&XB+"!S
 M:6=N;RD["BL)?2!E;'-E('L*(`D)97)R;F\@/2`P.PHM"0EL;V=E<G)O<BAB
 M=68I.PHK"0EL;V=E<G)O<B@B9F%T86P@97)R;W(L(&5X:71T:6YG(BD["B`)
 M?0H@"69O<B`H<"`]($QO9U!A=&AS.R!P("8F("IP.R!P*RLI"B`)"75N;&EN
 M:R@J<"D["B`)97AI="@P*3L*0$`@+3$Q.#,L.2`K,3(Y-"PY($!`"B!["B`)
 M<W1R=6-T(&%D9')I;F9O(&AI;G1S+"`J<F5S.PH@"6EN="`@("!E<G)O<BP@
 M:2P@<')I.PH@"6-H87(@("`J8G`L("IP+"`J<3L*+0EC:&%R("`@8G5F6TU!
 M6$Q)3D5=+"!E8G5F6S$P,%T["BL)8VAA<B`@(&)U9EM-05A,24Y%73L*(`H@
 M"61P<FEN=&8H(F-F;&EN92@E<RE<;B(L(&QI;F4I.PH@"B`)97)R;F\@/2`P
 M.PDO*B!K965P('-T<F5R<F]R*"D@<W1U9F8@;W5T(&]F(&QO9V5R<F]R(&UE
 M<W-A9V5S("HO"D!`("TQ,3DS+#@@*S$S,#0L-30@0$`*(`DO*B!C;&5A<B!O
 M=70@9FEL92!E;G1R>2`J+PH@"6UE;7-E="AF+"`P+"!S:7IE;V8H*F8I*3L*
 M(`EF;W(@*&D@/2`P.R!I(#P]($Q/1U].1D%#24Q)5$E%4SL@:2LK*0H@"0EF
 M+3YF7W!M87-K6VE=(#T@24Y415).04Q?3D]04DD["BL)"BL)+RH@"BL)("H@
 M5&AE<F4@<VAO=6QD(&YO="!B92!A;GD@<W!A8V4@8F5F;W)E('1H92!L;V=G
 M:6YG(&9A8VEL:71Y+@HK"2`J($-H96-K('1H:7,@:7,@;VMA>2P@8V]M<&QA
 M:6X@86YD(&9I>"!I9B!I="!I<R!N;W0N"BL)("HO"BL)<2`](&QI;F4["BL)
 M=VAI;&4@*"IQ("8F(&ES8FQA;FLH*G$I*2`**PD)<2LK.PHK"2\J('$@:7,@
 M870@=&AE(&9I<G-T(&-H87(@;V8@=&AE(&QO9V=I;F<@9F%C:6QI='D@*B\*
 M*PEI9B`H*G$@)B8@*"HH<2`M(#$I(#T]("<@)RDI('L**PD);&]G97)R;W(H
 M"BL)"2`@("`B5V%R;FEN9SH@7"(E<UPB('-P86-E(&)E9F]R92!T:&4@;&]G
 M9VEN9R!F86-I;&ET>2(L"BL)"2`@("!L:6YE*3L**PD)+RH@1FEX.B!S=')I
 M<"!A;&P@<W!A8V5S+W1A8G,@8F5F;W)E('1H92!L;V=G:6YG(&9A8VEL:71Y
 M("HO"BL)"6QI;F4@/2!Q.R`**PE]"BL**PDO*B`**PD@*B!4:&5R92!S:&]U
 M;&0@8F4@870@;&5A<W0@;VYE('1A8B!A9G1E<B!T:&4@;&]G9VEN9R!F86-I
 M;&ET>2`**PD@*B!#:&5C:R!T:&ES(&ES(&]K87DL(&%N9"!C;VUP;&%I;B!A
 M;F0@9FEX(&EF(&ET(&ES(&YO="X**PD@*B\**PEQ(#T@;&EN92`K('-T<FQE
 M;BAL:6YE*3L**PEW:&EL92`H(6ES8FQA;FLH*G$I("8F("AQ("$](&QI;F4I
 M*0HK"0EQ+2T["BL):68@*"AQ(#T](&QI;F4I("8F('-T<FQE;BAL:6YE*2D@
 M>R`**PD)+RH@3F\@=&%B<R!O<B!S<&%C92!I;B!A(&YO;B!E;7!T>2!L:6YE
 M.B!C;VUP;&%I;B`J+PHK"0EL;V=E<G)O<B@**PD)("`@(")%<G)O<CH@7"(E
 M<UPB(&QO9V=I;F<@9F%C:6QI='D@;W(@;&]G('1A<F=E="!M:7-S:6YG(BP*
 M*PD)("`@(&QI;F4I.PHK"7T**PD**PDO*B!Q(&ES(&%T('1H92!E;F0@;V8@
 M=&AE(&)L86YK(&)E='=E96X@=&AE('1W;R!F:65L9',@*B\**PEW:&EL92`H
 M:7-B;&%N:R@J<2D@)B8@*'$@(3T@;&EN92DI"BL)"7$M+3L**PHK"2\J('$@
 M:7,@870@=&AE(&)E9VEN;FEN9R!O9B!T:&4@8FQA;FL@8F5T=V5E;B!T:&4@
 M='=O(&9I96QD<R`J+PHK"6EF("@J*'$@*R`Q*2`]/2`G("<I('L@"BL)"2\J
 M($QO9V=I;F<@9F%C:6QI='D@:7,@9F]L;&]W960@8GD@82!S<&%C93H@8V]M
 M<&QA:6XN+BX@*B\**PD);&]G97)R;W(H"BL)"2`@("`B5V%R;FEN9SH@7"(E
 M<UPB(&QO9V=I;F<@9F%C:6QI='D@;F]T(&9O;&QO=V5D(&)Y(&$@=&%B(BP*
 M*PD)("`@(&QI;F4I.PHK"0DO*B`N+BX@86YD(&9I>"!T:&4@<')O8FQE;3H@
 M<F5P;&%C92!A;&P@<W!A8V5S(&)Y('1A8G,@*B\**PD)9F]R("@[("IQ.R!Q
 M*RLI"BL)"0EI9B`H*G$@/3T@)R`G*0HK"0D)"2IQ/2=<="<["0HK"7T*(`H@
 M"2\J('-C86X@=&AR;W5G:"!T:&4@;&ES="!O9B!S96QE8W1O<G,@*B\*(`EF
 M;W(@*'`@/2!L:6YE.R`J<"`F)B`J<"`A/2`G7'0G.RD@>PH@"D!`("TQ,C$V
 M+#$Q("LQ,S<S+#D@0$`*(`D)"7!R:2`]($Q/1U]04DE-05-+("L@,3L*(`D)
 M96QS92!["B`)"0EP<FD@/2!D96-O9&4H8G5F+"!P<FEO<FET>6YA;65S*3L*
 M(`D)"6EF("AP<FD@/"`P*2!["BT)"0D)*'9O:60I<VYP<FEN=&8H96)U9BP@
 M<VEZ96]F(&5B=68L"BT)"0D)("`@(")U;FMN;W=N('!R:6]R:71Y(&YA;64@
 M7"(E<UPB(BP@8G5F*3L*+0D)"0EL;V=E<G)O<BAE8G5F*3L**PD)"0EL;V=E
 M<G)O<B@B=6YK;F]W;B!P<FEO<FET>2!N86UE(%PB)7-<(B(L(&)U9BD["B`)
 M"0D)<F5T=7)N.PH@"0D)?0H@"0E]"B`*0$`@+3$R,S0L,3(@*S$S.#DL,3`@
 M0$`*(`D)"0D)9BT^9E]P;6%S:UMI72`]('!R:3L*(`D)"65L<V4@>PH@"0D)
 M"6D@/2!D96-O9&4H8G5F+"!F86-I;&ET>6YA;65S*3L*(`D)"0EI9B`H:2`\
 M(#`I('L*+0D)"0D)*'9O:60I<VYP<FEN=&8H96)U9BP@<VEZ96]F(&5B=68L
 M"BT)"0D)"2`@("`B=6YK;F]W;B!F86-I;&ET>2!N86UE(%PB)7-<(B(L"BL)
 M"0D)"6QO9V5R<F]R*")U;FMN;W=N(&9A8VEL:71Y(&YA;64@7"(E<UPB(BP*
 M(`D)"0D)("`@(&)U9BD["BT)"0D)"6QO9V5R<F]R*&5B=68I.PH@"0D)"0ER
 M971U<FX["B`)"0D)?0H@"0D)"68M/F9?<&UA<VM;:2`^/B`S72`]('!R:3L*
 &(`D)"7T*
 `
 end


 -- 
 Emmanuel Dreyfus
 manu@netbsd.org

From: christos@zoulas.com (Christos Zoulas)
To: manu@netbsd.org (Emmanuel Dreyfus), gnats-bugs@netbsd.org,
	ljt@alum.mit.edu
Cc:  
Subject: Re: bin/13400
Date: Sat, 14 Jul 2001 11:26:30 -0400

 On Jul 14, 12:05am, manu@netbsd.org (Emmanuel Dreyfus) wrote:
 -- Subject: bin/13400

 1. the ({u,g}id_t)strtol() should be replaced with strtoul() since you
    are casting to unsigned types.
 2. isdigit((unsigned char)*user) so that you don't index the ctypes array
    with a negative index.
 3. "no such user %s" -> "No such user `%s'"
 4. Use BUFSIZ or 1024 as the buffer size in tmpbuf. Memory is cheap these days 
 5. Shouldn't some of the dprintf's in the main code be removed since logerror
    deals with it properly?
 6. There is no issue about clearing the errno in logerror. calling
    logmsg/dprintf/printf will trash it anyway because it will be doing
    syscalls. What logerror should do is:
    {
 	   int serrno = errno;
 	   ...
 	   errno = serrno;
    }
    so that the wrapper code does not have to deal with it.
    This way the code that does explicitly 'errno = 0;' before calling logerror
    will still work, and we can remove the responsibility of saving the errno
    from the caller.
 7. The #ifdef __STDC__'s should be removed, since the code does not compile with
    a non ansi compiler.

 christos


 | As christos requested, I removed all snprintf(buf...). It's true it's
 | much nicer now. There is still a lot of bad stuff with errno because
 | logerror clears it, so it has to be saved before calling logerror at a
 | few places. 
 | 
 | I don't understand why we really have to clear errno in logerror. Maybe
 | we could remove this? This will clean up this kinfd of lines:
 | 
 |          int serrno = errno;
 |          logerror("cannot create %s", *pp);
 |          errno = serrno;
 | 
 | And maybe it would be nice to have an errno argument to logerror, so
 | that we can transmit errno or 0. That way, we would not have to clear
 | errno before calling logerror, like this lines:
 | 
 |                errno = 0;  /* already in msg */
 |                logerror(p);
 | 
 | We would do logerror(p, 0) instead, and logerror(p, errno) when
 | appropriate.
 | 
 | Opinions?
 | 
 | begin 644 syslogd.patch
 | cvs server: Diffing .
 | M/R!S>7-L;V=D"C\@<WES;&]G9"YC870X"C\@<WES;&]G+F-O;F8N8V%T-0I)
 | M;F1E>#H@<WES;&]G9"XX"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 | M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I
 | M;&4Z("]C=G-R;V]T+V)A<V5S<F,O=7-R+G-B:6XO<WES;&]G9"]S>7-L;V=D
 | M+C@L=@IR971R:65V:6YG(')E=FES:6]N(#$N,C`*9&EF9B`M530@+7(Q+C(P
 | M('-Y<VQO9V0N.`HM+2T@<WES;&]G9"XX"3(P,#$O,#4O,#,@,38Z-#4Z,#$)
 | M,2XR,`HK*RL@<WES;&]G9"XX"3(P,#$O,#<O,3,@,C$Z-3DZ,3,*0$`@+30U
 | M+#@@*S0U+#$W($!`"B`N0FL@+7=O<F1S"B`N3W`@1FP@9B!!<B!C;VYF:6=?
 | M9FEL90H@+D5K"B`N0FL@+7=O<F1S"BLN3W`@1FP@=2!!<B!U<V5R"BLN16L*
 | M*RY":R`M=V]R9',**RY/<"!&;"!G($%R('5S97(**RY%:PHK+D)K("UW;W)D
 | M<PHK+D]P($9L('0@07(@8VAR;V]T7V1I<@HK+D5K"BLN0FL@+7=O<F1S"B`N
 | M3W`@1FP@;2!!<B!M87)K7VEN=&5R=F%L"B`N16L*("Y":R`M=V]R9',*("Y/
 | M<"!&;"!0($%R(&9I;&5?;&ES=`I`0"`M-CDL."`K-S@L,C$@0$`*("Y)="!&
 | M;"!F"B!3<&5C:69Y('1H92!P871H;F%M92!O9B!A;B!A;'1E<FYA=&EV92!C
 | M;VYF:6=U<F%T:6]N(&9I;&4["B!T:&4@9&5F875L="!I<PH@+E!A("]E=&,O
 | M<WES;&]G+F-O;F8@+@HK+DET($9L('4@07(@=7-E<@HK4V5T(%5)1"!T;R`*
 | M*RY!<B!U<V5R(`HK869T97(@=&AE('-O8VME=',@86YD(&QO9R!F:6QE<R!H
 | M879E(&)E96X@;W!E;BX**RY)="!&;"!G($%R(&=R;W5P"BM3970@1TE$('1O
 | M(`HK+D%R(&=R;W5P(`HK869T97(@=&AE('-O8VME=',@86YD(&QO9R!F:6QE
 | M<R!H879E(&)E96X@;W!E;BX**RY)="!&;"!T($%R(&-H<F]O=%]D:7(**RY8
 | M<B!C:')O;W0@,@HK=&\**RY!<B!C:')O;W1?9&ER"BMA9G1E<B!T:&4@<V]C
 | M:V5T<R!A;F0@;&]G(&9I;&5S(`EH879E(&)E96X@;W!E;BX*("Y)="!&;"!M
 | M"B!396QE8W0@=&AE(&YU;6)E<B!O9B!M:6YU=&5S(&)E='=E96X@8&!M87)K
 | M)R<@;65S<V%G97,["B!T:&4@9&5F875L="!I<R`R,"!M:6YU=&5S+@H@+DET
 | M($9L(',*26YD97@Z('-Y<VQO9V0N8PH]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 | M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 | M"E)#4R!F:6QE.B`O8W9S<F]O="]B87-E<W)C+W5S<BYS8FEN+W-Y<VQO9V0O
 | M<WES;&]G9"YC+'8*<F5T<FEE=FEN9R!R979I<VEO;B`Q+C0T"F1I9F8@+54T
 | M("UR,2XT-"!S>7-L;V=D+F,*+2TM('-Y<VQO9V0N8PDR,#`Q+S`S+S(Q(#$W
 | M.C`R.C0S"3$N-#0**RLK('-Y<VQO9V0N8PDR,#`Q+S`W+S$S(#(Q.C4Y.C$V
 | M"D!`("TQ,#0L."`K,3`T+#$U($!`"B`C:6YC;'5D92`\<W1R:6YG+F@^"B`C
 | M:6YC;'5D92`\=6YI<W1D+F@^"B`C:6YC;'5D92`\=71M<"YH/@H@(VEN8VQU
 | M9&4@/'5T:6PN:#X**R-I;F-L=61E(#QP=V0N:#X**R-I;F-L=61E(#QG<G`N
 | M:#X**R-I9F1E9B!?7U-41$-?7PHK(VEN8VQU9&4@/'-T9&%R9RYH/@HK(V5L
 | M<V4**R-I;F-L=61E(#QV87)A<F=S+F@^"BLC96YD:68*("-I;F-L=61E(")P
 | M871H;F%M97,N:"(*(`H@(V1E9FEN92!365-,3T=?3D%-15,*("-I;F-L=61E
 | M(#QS>7,O<WES;&]G+F@^"D!`("TQ.#4L."`K,3DR+#D@0$`*('-T<G5C=`EF
 | M:6QE9"`J1FEL97,["B!S=')U8W0)9FEL960@8V]N<V9I;&4["B`*(&EN=`E$
 | M96)U9SL)"0DO*B!D96)U9R!F;&%G("HO"BMI;G0)9&%E;6]N:7IE9"`](#`[
 | M"0DO*B!W92!A<F4@;F]T(&1A96UO;FEZ960@>65T("HO"B!C:&%R"4QO8V%L
 | M2&]S=$YA;65;34%82$]35$Y!345,14XK,5T["2\J(&]U<B!H;W-T;F%M92`J
 | M+PH@8VAA<@DJ3&]C86Q$;VUA:6X["0DO*B!O=7(@;&]C86P@9&]M86EN(&YA
 | M;64@*B\*(&EN=`DJ9FEN970@/2!.54Q,.PD)"2\J($EN=&5R;F5T(&1A=&%G
 | M<F%M('-O8VME=',@*B\*(&EN=`E);FET:6%L:7IE9"`](#`["2\J('-E="!W
 | M:&5N('=E(&AA=F4@:6YI=&EA;&EZ960@;W5R<V5L=F5S("HO"D!`("TR,#0L
 | M.2`K,C$R+#D@0$`*('9O:60)9G!R:6YT;&]G(%]?4"@H<W1R=6-T(&9I;&5D
 | M("HL(&EN="P@8VAA<B`J*2D["B!I;G0)9V5T;7-G8G5F<VEZ92!?7U`H*'9O
 | M:60I*3L*(&EN="H)<V]C:W-E='5P(%]?4"@H:6YT*2D["B!V;VED"6EN:70@
 | M7U]0*"AI;G0I*3L*+79O:60);&]G97)R;W(@7U]0*"AC:&%R("HI*3L**W9O
 | M:60);&]G97)R;W(@7U]0*"AC;VYS="!C:&%R("HL("XN+BDI.PH@=F]I9`EL
 | M;V=M<V<@7U]0*"AI;G0L(&-H87(@*BP@8VAA<B`J+"!I;G0I*3L*('9O:60)
 | M<')I;G1L:6YE(%]?4"@H8VAA<B`J+"!C:&%R("HI*3L*('9O:60)<')I;G1S
 | M>7,@7U]0*"AC:&%R("HI*3L*('9O:60)<F5A<&-H:6QD(%]?4"@H:6YT*2D[
 | M"D!`("TR,C<L,3,@*S(S-2PS-R!`0`H@"7-T<G5C="!S;V-K861D<E]U;B!S
 | M=6YX+"!F<F]M=6YI>#L*(`ES=')U8W0@<V]C:V%D9')?<W1O<F%G92!F<F]M
 | M:6YE=#L*(`EC:&%R("IP+"`J;&EN92P@*BIP<#L*(`ES=')U8W0@<&]L;&9D
 | M("IR96%D9F1S.PHK"75I9%]T('5I9"`](#`["BL)9VED7W0@9VED(#T@,#L*
 | M*PEC:&%R("IU<V5R(#T@3E5,3#L**PEC:&%R("IG<F]U<"`]($Y53$P["BL)
 | M8VAA<B`J<F]O="`]("(O(CL**PEC:&%R("IE;F1P.PHK"7-T<G5C="!G<F]U
 | M<"`@("IG<CL**PES=')U8W0@<&%S<W=D("`J<'<["BL)"B`*(`DH=F]I9"ES
 | M971L;V-A;&4H3$-?04Q,+"`B(BD["B`*+0EW:&EL92`H*&-H(#T@9V5T;W!T
 | M*&%R9V,L(&%R9W8L(")D<V8Z;3IP.E`Z(BDI("$]("TQ*0HK"7=H:6QE("@H
 | M8V@@/2!G971O<'0H87)G8RP@87)G=BP@(F1S9CIM.G`Z4#IU.F<Z=#HB*2D@
 | M(3T@+3$I"B`)"7-W:71C:"AC:"D@>PHK"0EC87-E("=U)SH**PD)"75S97(@
 | M/2!O<'1A<F<["BL)"0EI9B`H*G5S97(@/3T@)UPP)RD**PD)"0EU<V%G92@I
 | M.PHK"0D)8G)E86L["BL)"6-A<V4@)V<G.@HK"0D)9W)O=7`@/2!O<'1A<F<[
 | M"BL)"0EI9B`H*F=R;W5P(#T]("=<,"<I"BL)"0D)=7-A9V4H*3L**PD)"6)R
 | M96%K.PHK"0EC87-E("=T)SH**PD)"7)O;W0@/2!O<'1A<F<["BL)"0EI9B`H
 | M*G)O;W0@/3T@)UPP)RD**PD)"0EU<V%G92@I.PHK"0D)8G)E86L["B`)"6-A
 | M<V4@)V0G.@D)+RH@9&5B=6<@*B\*(`D)"41E8G5G*RL["B`)"0EB<F5A:SL*
 | M(`D)8V%S92`G9B<Z"0DO*B!C;VYF:6=U<F%T:6]N(&9I;&4@*B\*0$`@+3(U
 | M.2PQ,R`K,CDQ+#0Y($!`"B`)"7T*(`EI9B`H*&%R9V,@+3T@;W!T:6YD*2`A
 | M/2`P*0H@"0EU<V%G92@I.PH@"BT):68@*"%$96)U9RD*+0D)*'9O:60I9&%E
 | M;6]N*#`L(#`I.PHM"65L<V4*+0D)<V5T;&EN96)U9BAS=&1O=70I.PHK"7-E
 | M=&QI;F5B=68H<W1D;W5T*3L**PHK"6EF("AU<V5R("$]($Y53$PI('L**PD)
 | M:68@*&ES9&EG:70H*G5S97(I*2!["BL)"0EU:60@/2`H=6ED7W0I<W1R=&]L
 | M*'5S97(L("9E;F1P+"`P*3L**PD)"6EF("@J96YD<"`A/2`G7#`G*0HK"2`@
 | M("`)"6=O=&\@9V5T=7-E<CL**PD)?2!E;'-E('L**V=E='5S97(Z"BL)"0EI
 | M9B`H*'!W(#T@9V5T<'=N86TH=7-E<BDI("$]($Y53$PI('L**PD)"0EU:60@
 | M/2!P=RT^<'=?=6ED.PHK"0D)?2!E;'-E('L**R`@("`@("`@("`@"65R<FYO
 | M(#T@,#L@(`HK"0D)"6QO9V5R<F]R*")N;R!S=6-H('5S97(@)7,B+"!U<V5R
 | M*3L**PD)"0ED:64@*#`I.PHK"0D)?0HK"0E]"BL)?0H@"BL):68@*&=R;W5P
 | M("$]($Y53$PI('L**PD):68@*&ES9&EG:70H*F=R;W5P*2D@>PHK"0D)9VED
 | M(#T@*&=I9%]T*7-T<G1O;"AG<F]U<"P@)F5N9'`L(#`I.PHK"0D):68@*"IE
 | M;F1P("$]("=<,"<I"BL)("`@(`D)9V]T;R!G971G<F]U<#L**PD)?2!E;'-E
 | M('L**V=E=&=R;W5P.@HK"0D):68@*"AG<B`](&=E=&=R;F%M*&=R;W5P*2D@
 | M(3T@3E5,3"D@>PHK"0D)"6=I9"`](&=R+3YG<E]G:60["BL)"0E](&5L<V4@
 | M>PHK"0D)"65R<FYO(#T@,#L**PD)"0EL;V=E<G)O<B@B;F\@<W5C:"!G<F]U
 | M<"`E<R(L(&=R;W5P*3L**PD)"0ED:64H,"D["BL)"0E]"BL)"7T**PE]"BL*
 | M*PEI9B`H86-C97-S("AR;V]T+"!&7T]+('P@4E]/2RDI('L**PD);&]G97)R
 | M;W(@*")#86YN;W0@86-C97-S("5S(BP@<F]O="D["BL)"61I92`H,"D["BL)
 | M?0HK"B`)8V]N<V9I;&4N9E]T>7!E(#T@1E]#3TY33TQ%.PH@"2AV;VED*7-T
 | M<F-P>2AC;VYS9FEL92YF7W5N+F9?9FYA;64L(&-T='DI.PH@"2AV;VED*6=E
 | M=&AO<W1N86UE*$QO8V%L2&]S=$YA;64L('-I>F5O9BA,;V-A;$AO<W1.86UE
 | M*2D["B`)3&]C86Q(;W-T3F%M95MS:7IE;V8H3&]C86Q(;W-T3F%M92D@+2`Q
 | M72`]("=<,"<["D!`("TS,3$L,3(@*S,W.2PY($!`"B`)"6EF("AF=6YI>%MJ
 | M72`\(#`@?'P@8FEN9"AF=6YI>%MJ72P*(`D)("`@("AS=')U8W0@<V]C:V%D
 | M9'(@*BDF<W5N>"P@4U5.7TQ%3B@F<W5N>"DI(#P@,"!\?`H@"0D@("`@8VAM
 | M;V0H*G!P+"`P-C8V*2`\(#`I('L*(`D)"6EN="!S97)R;F\@/2!E<G)N;SL*
 | M+0D)"2AV;VED*7-N<')I;G1F*&QI;F4L('-I>F5O9B!L:6YE+`HM"0D)("`@
 | M(")C86YN;W0@8W)E871E("5S(BP@*G!P*3L*+0D)"65R<FYO(#T@<V5R<FYO
 | M.PHM"0D);&]G97)R;W(H;&EN92D["BL)"0EL;V=E<G)O<B@B8V%N;F]T(&-R
 | M96%T92`E<R(L("IP<"D["B`)"0EE<G)N;R`]('-E<G)N;SL*(`D)"61P<FEN
 | M=&8H(F-A;FYO="!C<F5A=&4@)7,@*"5D*5QN(BP@*G!P+"!E<G)N;RD["B`)
 | M"0ED:64H,"D["B`)"7T*0$`@+3,V-2PX("LT,S`L,S@@0$`*(`D)<F5A9&9D
 | M<UMN9F1S72YF9"`](&9U;FEX6VHK*UT["B`)"7)E861F9'-;;F9D<RLK72YE
 | M=F5N=',@/2!03TQ,24X@?"!03TQ,4%)).PH@"7T*(`HK"2\J(`HK"2`J($%L
 | M;"!F:6QE<R!A<F4@;W!E;BP@=V4@8V%N(&1R;W`@<')I=FEL96=E<R!A;F0@
 | M8VAR;V]T"BL)("HO"BL)9'!R:6YT9B`H(F%T=&5M<'0@=&\@8VAR;V]T('1O
 | M("5S7&XB+"!R;V]T*3L@(`HK"6EF("AC:')O;W0@*')O;W0I*2!["BL)"6QO
 | M9V5R<F]R("@B9F%I;&5D('1O(&-H<F]O="!T;R`E<R(L(')O;W0I.PHK"0ED
 | M:64H,"D["BL)?0HK"61P<FEN=&8@*")A='1E;7!T('1O('-E="!'240O14=)
 | M1"!T;R`E9%QN(BP@9VED*3L@(`HK"6EF("AS971G:60@*&=I9"D@?'P@<V5T
 | M96=I9"`H9VED*2D@>PHK"0EL;V=E<G)O<B`H(F9A:6QE9"!T;R!S970@9VED
 | M('1O("5D(BP@9VED*3L**PD)9&EE*#`I.PHK"7T**PED<')I;G1F("@B871T
 | M96UP="!T;R!S970@54E$+T55240@=&\@)61<;B(L('5I9"D[("`**PEI9B`H
 | M<V5T=6ED("AU:60I('Q\('-E=&5U:60@*'5I9"DI('L**PD);&]G97)R;W(@
 | M*")F86EL960@=&\@<V5T('5I9"!T;R`E9"(L('5I9"D["BL)"61I92@P*3L*
 | M*PE]"BL**PDO*B`**PD@*B!792!C86YN;W0@9&5T86-H(&9R;VT@=&AE('1E
 | M<FUI;F%L(&)E9F]R92!W92!A<F4@<W5R92!W92!W;VXG="`**PD@*B!H879E
 | M(&$@9F%T86P@97)R;W(L(&)E8V%U<V4@97)R;W(@;65S<V%G92!W;W5L9"!N
 | M;W0@9V\@=&\@=&AE"BL)("H@=&5R;6EN86P@86YD('=O=6QD(&YO="!B92!L
 | M;V=G960@8F5C875S92!S>7-L;V=D(&1I97,N(`HK"2`J($%L;"!D:64H*2!C
 | M86QL<R!A<F4@8F5H:6YD('5S+"!W92!C86X@8V%L;"!D865M;VXH*0HK"2`J
 | M+PHK"6EF("@A1&5B=6<I('L**PD)*'9O:60I9&%E;6]N*#`L(#`I.PHK"0ED
 | M865M;VYI>F5D(#T@,3L**PE]"BL*(`EF;W(@*#L[*2!["B`)"6EN="!R=CL*
 | M(`H@"0ER=B`]('!O;&PH<F5A9&9D<RP@;F9D<RP@24Y&5$E-*3L*0$`@+30P
 | M,BPQ-2`K-#DW+#$P($!`"B`)"0EI9B`H:2`^(#`I('L*(`D)"0EL:6YE6VE=
 | M(#T@)UPP)SL*(`D)"0EP<FEN=&QI;F4H3&]C86Q(;W-T3F%M92P@;&EN92D[
 | M"B`)"0E](&5L<V4@:68@*&D@/"`P("8F(&5R<FYO("$]($5)3E12*2!["BT)
 | M"0D)8VAA<B!B=69;34%84$%42$Q%3ET["BT)"0D):6YT('-E<G)N;R`](&5R
 | M<FYO.PHM"BT)"0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8@8G5F+`HM
 | M"0D)"2`@("`B<F5C=F9R;VT@=6YI>"`E<R(L("IP<"D["BT)"0D)97)R;F\@
 | M/2!S97)R;F\["BT)"0D);&]G97)R;W(H8G5F*3L**PD)"0DO*B!I;G0@<V5R
 | M<FYO(#T@97)R;F\[("HO("\J(%A86"!5<V5L97-S/R`J+PHK"0D)"6QO9V5R
 | M<F]R*")R96-V9G)O;2!U;FEX("5S(BP@*G!P*3L*(`D)"7T*(`D)?0H@"0EI
 | M9B`H9FEN970@)B8@(5-E8W5R94UO9&4I('L*(`D)"69O<B`H:B`](#`[(&H@
 | M/"`J9FEN970[(&HK*RD@>PI`0"`M.3@Y+#0P("LQ,#<Y+#8Q($!`"B`O*@H@
 | M("H@4')I;G0@<WES;&]G9"!E<G)O<G,@<V]M92!P;&%C92X*("`J+PH@=F]I
 | M9`HM;&]G97)R;W(H='EP92D*+0EC:&%R("IT>7!E.PHK;&]G97)R;W(H8V]N
 | M<W0@8VAA<B`J9FUT+"`N+BXI"B!["BL)=F%?;&ES="!A<#L**PEC:&%R('1M
 | M<&)U9ELQ,#!=.PH@"6-H87(@8G5F6S$P,%T["B`**R-I9F1E9B!?7U-41$-?
 | M7PHK"79A7W-T87)T*&%P+"!F;70I.PHK(V5L<V4**PEV85]S=&%R="AA<"D[
 | M"BLC96YD:68**PHK"2AV;VED*79S;G!R:6YT9BAT;7!B=68L('-I>F5O9BAT
 | M;7!B=68I+"!F;70L(&%P*3L**PHK"79A7V5N9"AA<"D["BL*(`EI9B`H97)R
 | M;F\I"BT)"2AV;VED*7-N<')I;G1F*&)U9BP*+0D)("`@('-I>F5O9BAB=68I
 | M+"`B<WES;&]G9#H@)7,Z("5S(BP@='EP92P@<W1R97)R;W(H97)R;F\I*3L*
 | M*PD)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8H8G5F*2P@(G-Y<VQO9V0Z
 | M("5S.B`E<R(L(`HK"0D@("`@=&UP8G5F+"!S=')E<G)O<BAE<G)N;RDI.PH@
 | M"65L<V4*+0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8H8G5F*2P@(G-Y
 | M<VQO9V0Z("5S(BP@='EP92D["BL)"2AV;VED*7-N<')I;G1F*&)U9BP@<VEZ
 | M96]F*&)U9BDL(")S>7-L;V=D.B`E<R(L('1M<&)U9BD["BL*(`EE<G)N;R`]
 | M(#`["BT)9'!R:6YT9B@B)7-<;B(L(&)U9BD["BT);&]G;7-G*$Q/1U]365-,
 | M3T=\3$]'7T524BP@8G5F+"!,;V-A;$AO<W1.86UE+"!!1$1$051%*3L**PHK
 | M"6EF("AD865M;VYI>F5D*2`**PD);&]G;7-G*$Q/1U]365-,3T=\3$]'7T52
 | M4BP@8G5F+"!,;V-A;$AO<W1.86UE+"!!1$1$051%*3L**PEI9B`H(61A96UO
 | M;FEZ960@)B8@1&5B=6<I"BL)"61P<FEN=&8H(B5S7&XB+"!B=68I.PHK"6EF
 | M("@A9&%E;6]N:7IE9"`F)B`A1&5B=6<I"BL)"7!R:6YT9B@B)7-<;B(L(&)U
 | M9BD["BL**PER971U<FX["B!]"B`*('9O:60*(&1I92AS:6=N;RD*(`EI;G0@
 | M<VEG;F\["B!["B`)<W1R=6-T(&9I;&5D("IF.PHM"6-H87(@8G5F6S$P,%TL
 | M("HJ<#L**PEC:&%R("HJ<#L*(`H@"69O<B`H9B`]($9I;&5S.R!F("$]($Y5
 | M3$P[(&8@/2!F+3YF7VYE>'0I('L*(`D)+RH@9FQU<V@@86YY('!E;F1I;F<@
 | M;W5T<'5T("HO"B`)"6EF("AF+3YF7W!R979C;W5N="D*(`D)"69P<FEN=&QO
 | M9RAF+"`P+"`H8VAA<B`J*4Y53$PI.PH@"7T*(`EI9B`H<VEG;F\I('L*(`D)
 | M9'!R:6YT9B@B<WES;&]G9#H@97AI=&EN9R!O;B!S:6=N86P@)61<;B(L('-I
 | M9VYO*3L*+0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8@8G5F+"`B97AI
 | M=&EN9R!O;B!S:6=N86P@)60B+"!S:6=N;RD["BL)"65R<FYO(#T@,#L**PD)
 | M;&]G97)R;W(H(G-Y<VQO9V0Z(&5X:71I;F<@;VX@<VEG;F%L("5D7&XB+"!S
 | M:6=N;RD["BL)?2!E;'-E('L*(`D)97)R;F\@/2`P.PHM"0EL;V=E<G)O<BAB
 | M=68I.PHK"0EL;V=E<G)O<B@B9F%T86P@97)R;W(L(&5X:71T:6YG(BD["B`)
 | M?0H@"69O<B`H<"`]($QO9U!A=&AS.R!P("8F("IP.R!P*RLI"B`)"75N;&EN
 | M:R@J<"D["B`)97AI="@P*3L*0$`@+3$Q.#,L.2`K,3(Y-"PY($!`"B!["B`)
 | M<W1R=6-T(&%D9')I;F9O(&AI;G1S+"`J<F5S.PH@"6EN="`@("!E<G)O<BP@
 | M:2P@<')I.PH@"6-H87(@("`J8G`L("IP+"`J<3L*+0EC:&%R("`@8G5F6TU!
 | M6$Q)3D5=+"!E8G5F6S$P,%T["BL)8VAA<B`@(&)U9EM-05A,24Y%73L*(`H@
 | M"61P<FEN=&8H(F-F;&EN92@E<RE<;B(L(&QI;F4I.PH@"B`)97)R;F\@/2`P
 | M.PDO*B!K965P('-T<F5R<F]R*"D@<W1U9F8@;W5T(&]F(&QO9V5R<F]R(&UE
 | M<W-A9V5S("HO"D!`("TQ,3DS+#@@*S$S,#0L-30@0$`*(`DO*B!C;&5A<B!O
 | M=70@9FEL92!E;G1R>2`J+PH@"6UE;7-E="AF+"`P+"!S:7IE;V8H*F8I*3L*
 | M(`EF;W(@*&D@/2`P.R!I(#P]($Q/1U].1D%#24Q)5$E%4SL@:2LK*0H@"0EF
 | M+3YF7W!M87-K6VE=(#T@24Y415).04Q?3D]04DD["BL)"BL)+RH@"BL)("H@
 | M5&AE<F4@<VAO=6QD(&YO="!B92!A;GD@<W!A8V4@8F5F;W)E('1H92!L;V=G
 | M:6YG(&9A8VEL:71Y+@HK"2`J($-H96-K('1H:7,@:7,@;VMA>2P@8V]M<&QA
 | M:6X@86YD(&9I>"!I9B!I="!I<R!N;W0N"BL)("HO"BL)<2`](&QI;F4["BL)
 | M=VAI;&4@*"IQ("8F(&ES8FQA;FLH*G$I*2`**PD)<2LK.PHK"2\J('$@:7,@
 | M870@=&AE(&9I<G-T(&-H87(@;V8@=&AE(&QO9V=I;F<@9F%C:6QI='D@*B\*
 | M*PEI9B`H*G$@)B8@*"HH<2`M(#$I(#T]("<@)RDI('L**PD);&]G97)R;W(H
 | M"BL)"2`@("`B5V%R;FEN9SH@7"(E<UPB('-P86-E(&)E9F]R92!T:&4@;&]G
 | M9VEN9R!F86-I;&ET>2(L"BL)"2`@("!L:6YE*3L**PD)+RH@1FEX.B!S=')I
 | M<"!A;&P@<W!A8V5S+W1A8G,@8F5F;W)E('1H92!L;V=G:6YG(&9A8VEL:71Y
 | M("HO"BL)"6QI;F4@/2!Q.R`**PE]"BL**PDO*B`**PD@*B!4:&5R92!S:&]U
 | M;&0@8F4@870@;&5A<W0@;VYE('1A8B!A9G1E<B!T:&4@;&]G9VEN9R!F86-I
 | M;&ET>2`**PD@*B!#:&5C:R!T:&ES(&ES(&]K87DL(&%N9"!C;VUP;&%I;B!A
 | M;F0@9FEX(&EF(&ET(&ES(&YO="X**PD@*B\**PEQ(#T@;&EN92`K('-T<FQE
 | M;BAL:6YE*3L**PEW:&EL92`H(6ES8FQA;FLH*G$I("8F("AQ("$](&QI;F4I
 | M*0HK"0EQ+2T["BL):68@*"AQ(#T](&QI;F4I("8F('-T<FQE;BAL:6YE*2D@
 | M>R`**PD)+RH@3F\@=&%B<R!O<B!S<&%C92!I;B!A(&YO;B!E;7!T>2!L:6YE
 | M.B!C;VUP;&%I;B`J+PHK"0EL;V=E<G)O<B@**PD)("`@(")%<G)O<CH@7"(E
 | M<UPB(&QO9V=I;F<@9F%C:6QI='D@;W(@;&]G('1A<F=E="!M:7-S:6YG(BP*
 | M*PD)("`@(&QI;F4I.PHK"7T**PD**PDO*B!Q(&ES(&%T('1H92!E;F0@;V8@
 | M=&AE(&)L86YK(&)E='=E96X@=&AE('1W;R!F:65L9',@*B\**PEW:&EL92`H
 | M:7-B;&%N:R@J<2D@)B8@*'$@(3T@;&EN92DI"BL)"7$M+3L**PHK"2\J('$@
 | M:7,@870@=&AE(&)E9VEN;FEN9R!O9B!T:&4@8FQA;FL@8F5T=V5E;B!T:&4@
 | M='=O(&9I96QD<R`J+PHK"6EF("@J*'$@*R`Q*2`]/2`G("<I('L@"BL)"2\J
 | M($QO9V=I;F<@9F%C:6QI='D@:7,@9F]L;&]W960@8GD@82!S<&%C93H@8V]M
 | M<&QA:6XN+BX@*B\**PD);&]G97)R;W(H"BL)"2`@("`B5V%R;FEN9SH@7"(E
 | M<UPB(&QO9V=I;F<@9F%C:6QI='D@;F]T(&9O;&QO=V5D(&)Y(&$@=&%B(BP*
 | M*PD)("`@(&QI;F4I.PHK"0DO*B`N+BX@86YD(&9I>"!T:&4@<')O8FQE;3H@
 | M<F5P;&%C92!A;&P@<W!A8V5S(&)Y('1A8G,@*B\**PD)9F]R("@[("IQ.R!Q
 | M*RLI"BL)"0EI9B`H*G$@/3T@)R`G*0HK"0D)"2IQ/2=<="<["0HK"7T*(`H@
 | M"2\J('-C86X@=&AR;W5G:"!T:&4@;&ES="!O9B!S96QE8W1O<G,@*B\*(`EF
 | M;W(@*'`@/2!L:6YE.R`J<"`F)B`J<"`A/2`G7'0G.RD@>PH@"D!`("TQ,C$V
 | M+#$Q("LQ,S<S+#D@0$`*(`D)"7!R:2`]($Q/1U]04DE-05-+("L@,3L*(`D)
 | M96QS92!["B`)"0EP<FD@/2!D96-O9&4H8G5F+"!P<FEO<FET>6YA;65S*3L*
 | M(`D)"6EF("AP<FD@/"`P*2!["BT)"0D)*'9O:60I<VYP<FEN=&8H96)U9BP@
 | M<VEZ96]F(&5B=68L"BT)"0D)("`@(")U;FMN;W=N('!R:6]R:71Y(&YA;64@
 | M7"(E<UPB(BP@8G5F*3L*+0D)"0EL;V=E<G)O<BAE8G5F*3L**PD)"0EL;V=E
 | M<G)O<B@B=6YK;F]W;B!P<FEO<FET>2!N86UE(%PB)7-<(B(L(&)U9BD["B`)
 | M"0D)<F5T=7)N.PH@"0D)?0H@"0E]"B`*0$`@+3$R,S0L,3(@*S$S.#DL,3`@
 | M0$`*(`D)"0D)9BT^9E]P;6%S:UMI72`]('!R:3L*(`D)"65L<V4@>PH@"0D)
 | M"6D@/2!D96-O9&4H8G5F+"!F86-I;&ET>6YA;65S*3L*(`D)"0EI9B`H:2`\
 | M(#`I('L*+0D)"0D)*'9O:60I<VYP<FEN=&8H96)U9BP@<VEZ96]F(&5B=68L
 | M"BT)"0D)"2`@("`B=6YK;F]W;B!F86-I;&ET>2!N86UE(%PB)7-<(B(L"BL)
 | M"0D)"6QO9V5R<F]R*")U;FMN;W=N(&9A8VEL:71Y(&YA;64@7"(E<UPB(BP*
 | M(`D)"0D)("`@(&)U9BD["BT)"0D)"6QO9V5R<F]R*&5B=68I.PH@"0D)"0ER
 | M971U<FX["B`)"0D)?0H@"0D)"68M/F9?<&UA<VM;:2`^/B`S72`]('!R:3L*
 | &(`D)"7T*
 | `
 | end
 | 
 | 
 | -- 
 | Emmanuel Dreyfus
 | manu@netbsd.org
 -- End of excerpt from Emmanuel Dreyfus



From: manu@netbsd.org (Emmanuel Dreyfus)
To: christos@zoulas.com (Christos Zoulas), gnats-bugs@netbsd.org,
        ljt@alum.mit.edu
Cc:  
Subject: Re: bin/13400
Date: Sat, 14 Jul 2001 19:44:52 +0200

 > 1. the ({u,g}id_t)strtol() should be replaced with strtoul() since you
 >    are casting to unsigned types.
 > 2. isdigit((unsigned char)*user) so that you don't index the ctypes array
 >    with a negative index.

 I picked this code section from usr.sbin/chroot/chroot.c, so we need to
 fix it too. The same kind of problems exists also in named and several
 other programs.

 > 3. "no such user %s" -> "No such user `%s'"
 > 4. Use BUFSIZ or 1024 as the buffer size in tmpbuf. Memory is cheap these days

 Hem... NetBSD also runs on old hardware with not that much memory. It's
 even a point where we are better than others: on i386 or mac68k, we can
 boot the generic kernel with 5MB of memory. 

 Do we really want to throw 1kB of memory where just 100 bytes will do
 it? After all we won't have very long error message, since they are
 supposed to fit on a line, and a line is supposed to be 80 character
 long.

 > 5. Shouldn't some of the dprintf's in the main code be removed since logerror
 >    deals with it properly?

 I only found 2 dprintf that could go away (there is a logerr just after
 or before it with the same message): in die() and at the very end of
 init().

 > 6. There is no issue about clearing the errno in logerror. calling
 >    logmsg/dprintf/printf will trash it anyway because it will be doing
 >    syscalls. What logerror should do is:
 >    {
 >          int serrno = errno;
 >          ...
 >          errno = serrno;
 >    }
 >    so that the wrapper code does not have to deal with it.
 >    This way the code that does explicitly 'errno = 0;' before calling logerror
 >    will still work, and we can remove the responsibility of saving the errno
 >    from the caller.

 If we remove all unnecessary dprintf, we don't need to save errno
 anywhere.

 > 7. The #ifdef __STDC__'s should be removed, since the code does not
 > compile with a non ansi compiler.

 I picked this from usr.bin/altq/altqd/libatq2.c
 Do we need to modify altq too, or do we forget about it since it's an
 "external" program?

 -- 
 Emmanuel Dreyfus
 - Quel est le meilleur moyen d'accelerer un PC?
 - 9,81 m/s^2
 manu@netbsd.org

From: christos@zoulas.com (Christos Zoulas)
To: manu@netbsd.org (Emmanuel Dreyfus), gnats-bugs@netbsd.org,
	ljt@alum.mit.edu
Cc:  
Subject: Re: bin/13400
Date: Sat, 14 Jul 2001 14:11:41 -0400

 On Jul 14,  7:44pm, manu@netbsd.org (Emmanuel Dreyfus) wrote:
 -- Subject: Re: bin/13400

 | Do we really want to throw 1kB of memory where just 100 bytes will do
 | it? After all we won't have very long error message, since they are
 | supposed to fit on a line, and a line is supposed to be 80 character
 | long.

 It's only on the stack, costs nothing.

 | I only found 2 dprintf that could go away (there is a logerr just after
 | or before it with the same message): in die() and at the very end of
 | init().

 ok.

 | If we remove all unnecessary dprintf, we don't need to save errno
 | anywhere.

 sounds good.

 | > 7. The #ifdef __STDC__'s should be removed, since the code does not
 | > compile with a non ansi compiler.
 | 
 | I picked this from usr.bin/altq/altqd/libatq2.c
 | Do we need to modify altq too, or do we forget about it since it's an
 | "external" program?

 Well, if the code *can* compile on a non ansi environment and it is an
 external program, we should leave it alone.

 The code in syslogd would never compile in a non ansi environment because
 it only has the ellipsis varyadic declaration, not the:

     void foo(va_decl) va_alist {

 christos

From: manu@netbsd.org (Emmanuel Dreyfus)
To: gnats-bugs@netbsd.org, christos@zoulas.com, ljt@alum.mit.edu
Cc:  
Subject: bin/13400
Date: Sat, 14 Jul 2001 23:46:58 +0200

 Here is the latest patch to syslogd. Opinions?

 begin 644 syslogd.patch
 M/R!S>7-L;V=D"C\@<WES;&]G9"YC870X"C\@<WES;&]G+F-O;F8N8V%T-0I)
 M;F1E>#H@<WES;&]G9"XX"CT]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T*4D-3(&9I
 M;&4Z("]C=G-R;V]T+V)A<V5S<F,O=7-R+G-B:6XO<WES;&]G9"]S>7-L;V=D
 M+C@L=@IR971R:65V:6YG(')E=FES:6]N(#$N,C`*9&EF9B`M530@+7(Q+C(P
 M('-Y<VQO9V0N.`HM+2T@<WES;&]G9"XX"3(P,#$O,#4O,#,@,38Z-#4Z,#$)
 M,2XR,`HK*RL@<WES;&]G9"XX"3(P,#$O,#<O,30@,C$Z-#,Z,SD*0$`@+30U
 M+#@@*S0U+#$W($!`"B`N0FL@+7=O<F1S"B`N3W`@1FP@9B!!<B!C;VYF:6=?
 M9FEL90H@+D5K"B`N0FL@+7=O<F1S"BLN3W`@1FP@=2!!<B!U<V5R"BLN16L*
 M*RY":R`M=V]R9',**RY/<"!&;"!G($%R('5S97(**RY%:PHK+D)K("UW;W)D
 M<PHK+D]P($9L('0@07(@8VAR;V]T7V1I<@HK+D5K"BLN0FL@+7=O<F1S"B`N
 M3W`@1FP@;2!!<B!M87)K7VEN=&5R=F%L"B`N16L*("Y":R`M=V]R9',*("Y/
 M<"!&;"!0($%R(&9I;&5?;&ES=`I`0"`M-CDL."`K-S@L,C$@0$`*("Y)="!&
 M;"!F"B!3<&5C:69Y('1H92!P871H;F%M92!O9B!A;B!A;'1E<FYA=&EV92!C
 M;VYF:6=U<F%T:6]N(&9I;&4["B!T:&4@9&5F875L="!I<PH@+E!A("]E=&,O
 M<WES;&]G+F-O;F8@+@HK+DET($9L('4@07(@=7-E<@HK4V5T(%5)1"!T;R`*
 M*RY!<B!U<V5R(`HK869T97(@=&AE('-O8VME=',@86YD(&QO9R!F:6QE<R!H
 M879E(&)E96X@;W!E;BX**RY)="!&;"!G($%R(&=R;W5P"BM3970@1TE$('1O
 M(`HK+D%R(&=R;W5P(`HK869T97(@=&AE('-O8VME=',@86YD(&QO9R!F:6QE
 M<R!H879E(&)E96X@;W!E;BX**RY)="!&;"!T($%R(&-H<F]O=%]D:7(**RY8
 M<B!C:')O;W0@,@HK=&\**RY!<B!C:')O;W1?9&ER"BMA9G1E<B!T:&4@<V]C
 M:V5T<R!A;F0@;&]G(&9I;&5S(`EH879E(&)E96X@;W!E;BX*("Y)="!&;"!M
 M"B!396QE8W0@=&AE(&YU;6)E<B!O9B!M:6YU=&5S(&)E='=E96X@8&!M87)K
 M)R<@;65S<V%G97,["B!T:&4@9&5F875L="!I<R`R,"!M:6YU=&5S+@H@+DET
 M($9L(',*26YD97@Z('-Y<VQO9V0N8PH]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M"E)#4R!F:6QE.B`O8W9S<F]O="]B87-E<W)C+W5S<BYS8FEN+W-Y<VQO9V0O
 M<WES;&]G9"YC+'8*<F5T<FEE=FEN9R!R979I<VEO;B`Q+C0T"F1I9F8@+54T
 M("UR,2XT-"!S>7-L;V=D+F,*+2TM('-Y<VQO9V0N8PDR,#`Q+S`S+S(Q(#$W
 M.C`R.C0S"3$N-#0**RLK('-Y<VQO9V0N8PDR,#`Q+S`W+S$T(#(Q.C0S.C0Q
 M"D!`("TQ,#0L."`K,3`T+#$Q($!`"B`C:6YC;'5D92`\<W1R:6YG+F@^"B`C
 M:6YC;'5D92`\=6YI<W1D+F@^"B`C:6YC;'5D92`\=71M<"YH/@H@(VEN8VQU
 M9&4@/'5T:6PN:#X**R-I;F-L=61E(#QP=V0N:#X**R-I;F-L=61E(#QG<G`N
 M:#X**R-I;F-L=61E(#QS=&1A<F<N:#X*("-I;F-L=61E(")P871H;F%M97,N
 M:"(*(`H@(V1E9FEN92!365-,3T=?3D%-15,*("-I;F-L=61E(#QS>7,O<WES
 M;&]G+F@^"D!`("TQ.#4L."`K,3@X+#D@0$`*('-T<G5C=`EF:6QE9"`J1FEL
 M97,["B!S=')U8W0)9FEL960@8V]N<V9I;&4["B`*(&EN=`E$96)U9SL)"0DO
 M*B!D96)U9R!F;&%G("HO"BMI;G0)9&%E;6]N:7IE9"`](#`["0DO*B!W92!A
 M<F4@;F]T(&1A96UO;FEZ960@>65T("HO"B!C:&%R"4QO8V%L2&]S=$YA;65;
 M34%82$]35$Y!345,14XK,5T["2\J(&]U<B!H;W-T;F%M92`J+PH@8VAA<@DJ
 M3&]C86Q$;VUA:6X["0DO*B!O=7(@;&]C86P@9&]M86EN(&YA;64@*B\*(&EN
 M=`DJ9FEN970@/2!.54Q,.PD)"2\J($EN=&5R;F5T(&1A=&%G<F%M('-O8VME
 M=',@*B\*(&EN=`E);FET:6%L:7IE9"`](#`["2\J('-E="!W:&5N('=E(&AA
 M=F4@:6YI=&EA;&EZ960@;W5R<V5L=F5S("HO"D!`("TR,#0L.2`K,C`X+#D@
 M0$`*('9O:60)9G!R:6YT;&]G(%]?4"@H<W1R=6-T(&9I;&5D("HL(&EN="P@
 M8VAA<B`J*2D["B!I;G0)9V5T;7-G8G5F<VEZ92!?7U`H*'9O:60I*3L*(&EN
 M="H)<V]C:W-E='5P(%]?4"@H:6YT*2D["B!V;VED"6EN:70@7U]0*"AI;G0I
 M*3L*+79O:60);&]G97)R;W(@7U]0*"AC:&%R("HI*3L**W9O:60);&]G97)R
 M;W(@7U]0*"AC;VYS="!C:&%R("HL("XN+BDI.PH@=F]I9`EL;V=M<V<@7U]0
 M*"AI;G0L(&-H87(@*BP@8VAA<B`J+"!I;G0I*3L*('9O:60)<')I;G1L:6YE
 M(%]?4"@H8VAA<B`J+"!C:&%R("HI*3L*('9O:60)<')I;G1S>7,@7U]0*"AC
 M:&%R("HI*3L*('9O:60)<F5A<&-H:6QD(%]?4"@H:6YT*2D["D!`("TR,C<L
 M,3,@*S(S,2PS-R!`0`H@"7-T<G5C="!S;V-K861D<E]U;B!S=6YX+"!F<F]M
 M=6YI>#L*(`ES=')U8W0@<V]C:V%D9')?<W1O<F%G92!F<F]M:6YE=#L*(`EC
 M:&%R("IP+"`J;&EN92P@*BIP<#L*(`ES=')U8W0@<&]L;&9D("IR96%D9F1S
 M.PHK"75I9%]T('5I9"`](#`["BL)9VED7W0@9VED(#T@,#L**PEC:&%R("IU
 M<V5R(#T@3E5,3#L**PEC:&%R("IG<F]U<"`]($Y53$P["BL)8VAA<B`J<F]O
 M="`]("(O(CL**PEC:&%R("IE;F1P.PHK"7-T<G5C="!G<F]U<"`@("IG<CL*
 M*PES=')U8W0@<&%S<W=D("`J<'<["BL)"B`*(`DH=F]I9"ES971L;V-A;&4H
 M3$-?04Q,+"`B(BD["B`*+0EW:&EL92`H*&-H(#T@9V5T;W!T*&%R9V,L(&%R
 M9W8L(")D<V8Z;3IP.E`Z(BDI("$]("TQ*0HK"7=H:6QE("@H8V@@/2!G971O
 M<'0H87)G8RP@87)G=BP@(F1S9CIM.G`Z4#IU.F<Z=#HB*2D@(3T@+3$I"B`)
 M"7-W:71C:"AC:"D@>PHK"0EC87-E("=U)SH**PD)"75S97(@/2!O<'1A<F<[
 M"BL)"0EI9B`H*G5S97(@/3T@)UPP)RD**PD)"0EU<V%G92@I.PHK"0D)8G)E
 M86L["BL)"6-A<V4@)V<G.@HK"0D)9W)O=7`@/2!O<'1A<F<["BL)"0EI9B`H
 M*F=R;W5P(#T]("=<,"<I"BL)"0D)=7-A9V4H*3L**PD)"6)R96%K.PHK"0EC
 M87-E("=T)SH**PD)"7)O;W0@/2!O<'1A<F<["BL)"0EI9B`H*G)O;W0@/3T@
 M)UPP)RD**PD)"0EU<V%G92@I.PHK"0D)8G)E86L["B`)"6-A<V4@)V0G.@D)
 M+RH@9&5B=6<@*B\*(`D)"41E8G5G*RL["B`)"0EB<F5A:SL*(`D)8V%S92`G
 M9B<Z"0DO*B!C;VYF:6=U<F%T:6]N(&9I;&4@*B\*0$`@+3(U.2PQ,R`K,C@W
 M+#0Y($!`"B`)"7T*(`EI9B`H*&%R9V,@+3T@;W!T:6YD*2`A/2`P*0H@"0EU
 M<V%G92@I.PH@"BT):68@*"%$96)U9RD*+0D)*'9O:60I9&%E;6]N*#`L(#`I
 M.PHM"65L<V4*+0D)<V5T;&EN96)U9BAS=&1O=70I.PHK"7-E=&QI;F5B=68H
 M<W1D;W5T*3L*(`HK"6EF("AU<V5R("$]($Y53$PI('L**PD):68@*&ES9&EG
 M:70H*'5N<VEG;F5D(&-H87(I*G5S97(I*2!["BL)"0EU:60@/2`H=6ED7W0I
 M<W1R=&]U;"AU<V5R+"`F96YD<"P@,"D["BL)"0EI9B`H*F5N9'`@(3T@)UPP
 M)RD**PD@("`@"0EG;W1O(&=E='5S97(["BL)"7T@96QS92!["BMG971U<V5R
 M.@HK"0D):68@*"AP=R`](&=E='!W;F%M*'5S97(I*2`A/2!.54Q,*2!["BL)
 M"0D)=6ED(#T@<'<M/G!W7W5I9#L**PD)"7T@96QS92!["BL@("`@("`@("`@
 M(`EE<G)N;R`](#`[("`**PD)"0EL;V=E<G)O<B@B0V%N;F]T(&9I;F0@=7-E
 M<B!@)7,G(BP@=7-E<BD["BL)"0D)9&EE("@P*3L**PD)"7T**PD)?0HK"7T*
 M*PHK"6EF("AG<F]U<"`A/2!.54Q,*2!["BL)"6EF("AI<V1I9VET*"AU;G-I
 M9VYE9"!C:&%R*2IG<F]U<"DI('L**PD)"6=I9"`]("AG:61?="ES=')T;W5L
 M*&=R;W5P+"`F96YD<"P@,"D["BL)"0EI9B`H*F5N9'`@(3T@)UPP)RD**PD@
 M("`@"0EG;W1O(&=E=&=R;W5P.PHK"0E](&5L<V4@>PHK9V5T9W)O=7`Z"BL)
 M"0EI9B`H*&=R(#T@9V5T9W)N86TH9W)O=7`I*2`A/2!.54Q,*2!["BL)"0D)
 M9VED(#T@9W(M/F=R7V=I9#L**PD)"7T@96QS92!["BL)"0D)97)R;F\@/2`P
 M.PHK"0D)"6QO9V5R<F]R*")#86YN;W0@9FEN9"!G<F]U<"!@)7,G(BP@9W)O
 M=7`I.PHK"0D)"61I92@P*3L**PD)"7T**PD)?0HK"7T**PHK"6EF("AA8V-E
 M<W,@*')O;W0L($9?3TL@?"!27T]+*2D@>PHK"0EL;V=E<G)O<B`H(D-A;FYO
 M="!A8V-E<W,@8"5S)R(L(')O;W0I.PHK"0ED:64@*#`I.PHK"7T**PH@"6-O
 M;G-F:6QE+F9?='EP92`]($9?0T].4T],13L*(`DH=F]I9"ES=')C<'DH8V]N
 M<V9I;&4N9E]U;BYF7V9N86UE+"!C='1Y*3L*(`DH=F]I9"EG971H;W-T;F%M
 M92A,;V-A;$AO<W1.86UE+"!S:7IE;V8H3&]C86Q(;W-T3F%M92DI.PH@"4QO
 M8V%L2&]S=$YA;65;<VEZ96]F*$QO8V%L2&]S=$YA;64I("T@,5T@/2`G7#`G
 M.PI`0"`M,S$P+#$U("LS-S0L.2!`0`H@"0EF=6YI>%MJ72`]('-O8VME="A!
 M1E],3T-!3"P@4T]#2U]$1U)!32P@,"D["B`)"6EF("AF=6YI>%MJ72`\(#`@
 M?'P@8FEN9"AF=6YI>%MJ72P*(`D)("`@("AS=')U8W0@<V]C:V%D9'(@*BDF
 M<W5N>"P@4U5.7TQ%3B@F<W5N>"DI(#P@,"!\?`H@"0D@("`@8VAM;V0H*G!P
 M+"`P-C8V*2`\(#`I('L*+0D)"6EN="!S97)R;F\@/2!E<G)N;SL*+0D)"2AV
 M;VED*7-N<')I;G1F*&QI;F4L('-I>F5O9B!L:6YE+`HM"0D)("`@(")C86YN
 M;W0@8W)E871E("5S(BP@*G!P*3L*+0D)"65R<FYO(#T@<V5R<FYO.PHM"0D)
 M;&]G97)R;W(H;&EN92D["BT)"0EE<G)N;R`]('-E<G)N;SL*+0D)"61P<FEN
 M=&8H(F-A;FYO="!C<F5A=&4@)7,@*"5D*5QN(BP@*G!P+"!E<G)N;RD["BL)
 M"0EL;V=E<G)O<B@B8V%N;F]T(&-R96%T92`E<R(L("IP<"D["B`)"0ED:64H
 M,"D["B`)"7T*(`D)9'!R:6YT9B@B;&ES=&5N:6YG(&]N('5N:7@@9&=R86T@
 M<V]C:V5T("5S7&XB+"`J<'`I.PH@"7T*0$`@+3,V-2PX("LT,C,L,S@@0$`*
 M(`D)<F5A9&9D<UMN9F1S72YF9"`](&9U;FEX6VHK*UT["B`)"7)E861F9'-;
 M;F9D<RLK72YE=F5N=',@/2!03TQ,24X@?"!03TQ,4%)).PH@"7T*(`HK"2\J
 M(`HK"2`J($%L;"!F:6QE<R!A<F4@;W!E;BP@=V4@8V%N(&1R;W`@<')I=FEL
 M96=E<R!A;F0@8VAR;V]T"BL)("HO"BL)9'!R:6YT9B`H(F%T=&5M<'0@=&\@
 M8VAR;V]T('1O("5S7&XB+"!R;V]T*3L@(`HK"6EF("AC:')O;W0@*')O;W0I
 M*2!["BL)"6QO9V5R<F]R("@B9F%I;&5D('1O(&-H<F]O="!T;R`E<R(L(')O
 M;W0I.PHK"0ED:64H,"D["BL)?0HK"61P<FEN=&8@*")A='1E;7!T('1O('-E
 M="!'240O14=)1"!T;R`E9%QN(BP@9VED*3L@(`HK"6EF("AS971G:60@*&=I
 M9"D@?'P@<V5T96=I9"`H9VED*2D@>PHK"0EL;V=E<G)O<B`H(F9A:6QE9"!T
 M;R!S970@9VED('1O("5D(BP@9VED*3L**PD)9&EE*#`I.PHK"7T**PED<')I
 M;G1F("@B871T96UP="!T;R!S970@54E$+T55240@=&\@)61<;B(L('5I9"D[
 M("`**PEI9B`H<V5T=6ED("AU:60I('Q\('-E=&5U:60@*'5I9"DI('L**PD)
 M;&]G97)R;W(@*")F86EL960@=&\@<V5T('5I9"!T;R`E9"(L('5I9"D["BL)
 M"61I92@P*3L**PE]"BL**PDO*B`**PD@*B!792!C86YN;W0@9&5T86-H(&9R
 M;VT@=&AE('1E<FUI;F%L(&)E9F]R92!W92!A<F4@<W5R92!W92!W;VXG="`*
 M*PD@*B!H879E(&$@9F%T86P@97)R;W(L(&)E8V%U<V4@97)R;W(@;65S<V%G
 M92!W;W5L9"!N;W0@9V\@=&\@=&AE"BL)("H@=&5R;6EN86P@86YD('=O=6QD
 M(&YO="!B92!L;V=G960@8F5C875S92!S>7-L;V=D(&1I97,N(`HK"2`J($%L
 M;"!D:64H*2!C86QL<R!A<F4@8F5H:6YD('5S+"!W92!C86X@8V%L;"!D865M
 M;VXH*0HK"2`J+PHK"6EF("@A1&5B=6<I('L**PD)*'9O:60I9&%E;6]N*#`L
 M(#`I.PHK"0ED865M;VYI>F5D(#T@,3L**PE]"BL*(`EF;W(@*#L[*2!["B`)
 M"6EN="!R=CL*(`H@"0ER=B`]('!O;&PH<F5A9&9D<RP@;F9D<RP@24Y&5$E-
 M*3L*0$`@+30P,BPQ-2`K-#DP+#D@0$`*(`D)"6EF("AI(#X@,"D@>PH@"0D)
 M"6QI;F5;:5T@/2`G7#`G.PH@"0D)"7!R:6YT;&EN92A,;V-A;$AO<W1.86UE
 M+"!L:6YE*3L*(`D)"7T@96QS92!I9B`H:2`\(#`@)B8@97)R;F\@(3T@14E.
 M5%(I('L*+0D)"0EC:&%R(&)U9EM-05A0051(3$5.73L*+0D)"0EI;G0@<V5R
 M<FYO(#T@97)R;F\["BT*+0D)"0DH=F]I9"ES;G!R:6YT9BAB=68L('-I>F5O
 M9B!B=68L"BT)"0D)("`@(")R96-V9G)O;2!U;FEX("5S(BP@*G!P*3L*+0D)
 M"0EE<G)N;R`]('-E<G)N;SL*+0D)"0EL;V=E<G)O<BAB=68I.PHK"0D)"6QO
 M9V5R<F]R*")R96-V9G)O;2!U;FEX("5S(BP@*G!P*3L*(`D)"7T*(`D)?0H@
 M"0EI9B`H9FEN970@)B8@(5-E8W5R94UO9&4I('L*(`D)"69O<B`H:B`](#`[
 M(&H@/"`J9FEN970[(&HK*RD@>PI`0"`M-#@W+#$S("LU-CDL.2!`0`H@"7-I
 M>F5?="!L96X["B`*(`EF<"`](&9O<&5N*&9I;&4L(")R(BD["B`):68@*&9P
 M(#T]($Y53$PI('L*+0D):6YT('-E<G)N;R`](&5R<FYO.PHM"BT)"61P<FEN
 M=&8H(F-A;B=T(&]P96X@)7,@*"5D*5QN(BP@9FEL92P@97)R;F\I.PHM"0EE
 M<G)N;R`]('-E<G)N;SL*+0D);&]G97)R;W(H(F-O=6QD(&YO="!O<&5N('-O
 M8VME="!F:6QE(&QI<W0B*3L**PD);&]G97)R;W(H(F-O=6QD(&YO="!O<&5N
 M('-O8VME="!F:6QE(&QI<W0@8"5S)R(L(&9I;&4I.PH@"0ED:64H,"D["B`)
 M?0H@"B`)=VAI;&4@*"AL:6YE(#T@9F=E=&QN*&9P+"`F;&5N*2DI('L*0$`@
 M+3DX.2PT,2`K,3`V-RPU,R!`0`H@+RH*("`J(%!R:6YT('-Y<VQO9V0@97)R
 M;W)S('-O;64@<&QA8V4N"B`@*B\*('9O:60*+6QO9V5R<F]R*'1Y<&4I"BT)
 M8VAA<B`J='EP93L**VQO9V5R<F]R*&-O;G-T(&-H87(@*F9M="P@+BXN*0H@
 M>PHM"6-H87(@8G5F6S$P,%T["BL)=F%?;&ES="!A<#L**PEC:&%R('1M<&)U
 M9EM"549325I=.PHK"6-H87(@8G5F6T)51E-)6ET["BL**PEV85]S=&%R="AA
 M<"P@9FUT*3L**PHK"2AV;VED*79S;G!R:6YT9BAT;7!B=68L('-I>F5O9BAT
 M;7!B=68I+"!F;70L(&%P*3L**PHK"79A7V5N9"AA<"D["B`*(`EI9B`H97)R
 M;F\I"BT)"2AV;VED*7-N<')I;G1F*&)U9BP*+0D)("`@('-I>F5O9BAB=68I
 M+"`B<WES;&]G9#H@)7,Z("5S(BP@='EP92P@<W1R97)R;W(H97)R;F\I*3L*
 M*PD)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8H8G5F*2P@(G-Y<VQO9V0Z
 M("5S.B`E<R(L(`HK"0D@("`@=&UP8G5F+"!S=')E<G)O<BAE<G)N;RDI.PH@
 M"65L<V4*+0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8H8G5F*2P@(G-Y
 M<VQO9V0Z("5S(BP@='EP92D["BT)97)R;F\@/2`P.PHM"61P<FEN=&8H(B5S
 M7&XB+"!B=68I.PHM"6QO9VUS9RA,3T=?4UE33$]'?$Q/1U]%4E(L(&)U9BP@
 M3&]C86Q(;W-T3F%M92P@041$1$%412D["BL)"2AV;VED*7-N<')I;G1F*&)U
 M9BP@<VEZ96]F*&)U9BDL(")S>7-L;V=D.B`E<R(L('1M<&)U9BD["BL**PEI
 M9B`H9&%E;6]N:7IE9"D@"BL)"6QO9VUS9RA,3T=?4UE33$]'?$Q/1U]%4E(L
 M(&)U9BP@3&]C86Q(;W-T3F%M92P@041$1$%412D["BL):68@*"%D865M;VYI
 M>F5D("8F($1E8G5G*0HK"0ED<')I;G1F*"(E<UQN(BP@8G5F*3L**PEI9B`H
 M(61A96UO;FEZ960@)B8@(41E8G5G*0HK"0EP<FEN=&8H(B5S7&XB+"!B=68I
 M.PHK"BL)<F5T=7)N.PH@?0H@"B!V;VED"B!D:64H<VEG;F\I"B`):6YT('-I
 M9VYO.PH@>PH@"7-T<G5C="!F:6QE9"`J9CL*+0EC:&%R(&)U9ELQ,#!=+"`J
 M*G`["BL)8VAA<B`J*G`["B`*(`EF;W(@*&8@/2!&:6QE<SL@9B`A/2!.54Q,
 M.R!F(#T@9BT^9E]N97AT*2!["B`)"2\J(&9L=7-H(&%N>2!P96YD:6YG(&]U
 M='!U="`J+PH@"0EI9B`H9BT^9E]P<F5V8V]U;G0I"B`)"0EF<')I;G1L;V<H
 M9BP@,"P@*&-H87(@*BE.54Q,*3L*(`E]"BT):68@*'-I9VYO*2!["BT)"61P
 M<FEN=&8H(G-Y<VQO9V0Z(&5X:71I;F<@;VX@<VEG;F%L("5D7&XB+"!S:6=N
 M;RD["BT)"2AV;VED*7-N<')I;G1F*&)U9BP@<VEZ96]F(&)U9BP@(F5X:71I
 M;F<@;VX@<VEG;F%L("5D(BP@<VEG;F\I.PHM"0EE<G)N;R`](#`["BT)"6QO
 M9V5R<F]R*&)U9BD["BT)?0HK"65R<FYO(#T@,#L**PEI9B`H<VEG;F\I"BL)
 M"6QO9V5R<F]R*")S>7-L;V=D.B!E>&ET:6YG(&]N('-I9VYA;"`E9%QN(BP@
 M<VEG;F\I.PHK"65L<V4**PD);&]G97)R;W(H(F9A=&%L(&5R<F]R+"!E>&ET
 M=&EN9R(I.PH@"69O<B`H<"`]($QO9U!A=&AS.R!P("8F("IP.R!P*RLI"B`)
 M"75N;&EN:R@J<"D["B`)97AI="@P*3L*('T*0$`@+3$Q.#,L.2`K,3(W,RPY
 M($!`"B!["B`)<W1R=6-T(&%D9')I;F9O(&AI;G1S+"`J<F5S.PH@"6EN="`@
 M("!E<G)O<BP@:2P@<')I.PH@"6-H87(@("`J8G`L("IP+"`J<3L*+0EC:&%R
 M("`@8G5F6TU!6$Q)3D5=+"!E8G5F6S$P,%T["BL)8VAA<B`@(&)U9EM-05A,
 M24Y%73L*(`H@"61P<FEN=&8H(F-F;&EN92@E<RE<;B(L(&QI;F4I.PH@"B`)
 M97)R;F\@/2`P.PDO*B!K965P('-T<F5R<F]R*"D@<W1U9F8@;W5T(&]F(&QO
 M9V5R<F]R(&UE<W-A9V5S("HO"D!`("TQ,3DS+#@@*S$R.#,L-30@0$`*(`DO
 M*B!C;&5A<B!O=70@9FEL92!E;G1R>2`J+PH@"6UE;7-E="AF+"`P+"!S:7IE
 M;V8H*F8I*3L*(`EF;W(@*&D@/2`P.R!I(#P]($Q/1U].1D%#24Q)5$E%4SL@
 M:2LK*0H@"0EF+3YF7W!M87-K6VE=(#T@24Y415).04Q?3D]04DD["BL)"BL)
 M+RH@"BL)("H@5&AE<F4@<VAO=6QD(&YO="!B92!A;GD@<W!A8V4@8F5F;W)E
 M('1H92!L;V=G:6YG(&9A8VEL:71Y+@HK"2`J($-H96-K('1H:7,@:7,@;VMA
 M>2P@8V]M<&QA:6X@86YD(&9I>"!I9B!I="!I<R!N;W0N"BL)("HO"BL)<2`]
 M(&QI;F4["BL)=VAI;&4@*"IQ("8F(&ES8FQA;FLH*G$I*2`**PD)<2LK.PHK
 M"2\J('$@:7,@870@=&AE(&9I<G-T(&-H87(@;V8@=&AE(&QO9V=I;F<@9F%C
 M:6QI='D@*B\**PEI9B`H*G$@)B8@*"HH<2`M(#$I(#T]("<@)RDI('L**PD)
 M;&]G97)R;W(H"BL)"2`@("`B5V%R;FEN9SH@7"(E<UPB('-P86-E(&)E9F]R
 M92!T:&4@;&]G9VEN9R!F86-I;&ET>2(L"BL)"2`@("!L:6YE*3L**PD)+RH@
 M1FEX.B!S=')I<"!A;&P@<W!A8V5S+W1A8G,@8F5F;W)E('1H92!L;V=G:6YG
 M(&9A8VEL:71Y("HO"BL)"6QI;F4@/2!Q.R`**PE]"BL**PDO*B`**PD@*B!4
 M:&5R92!S:&]U;&0@8F4@870@;&5A<W0@;VYE('1A8B!A9G1E<B!T:&4@;&]G
 M9VEN9R!F86-I;&ET>2`**PD@*B!#:&5C:R!T:&ES(&ES(&]K87DL(&%N9"!C
 M;VUP;&%I;B!A;F0@9FEX(&EF(&ET(&ES(&YO="X**PD@*B\**PEQ(#T@;&EN
 M92`K('-T<FQE;BAL:6YE*3L**PEW:&EL92`H(6ES8FQA;FLH*G$I("8F("AQ
 M("$](&QI;F4I*0HK"0EQ+2T["BL):68@*"AQ(#T](&QI;F4I("8F('-T<FQE
 M;BAL:6YE*2D@>R`**PD)+RH@3F\@=&%B<R!O<B!S<&%C92!I;B!A(&YO;B!E
 M;7!T>2!L:6YE.B!C;VUP;&%I;B`J+PHK"0EL;V=E<G)O<B@**PD)("`@(")%
 M<G)O<CH@7"(E<UPB(&QO9V=I;F<@9F%C:6QI='D@;W(@;&]G('1A<F=E="!M
 M:7-S:6YG(BP**PD)("`@(&QI;F4I.PHK"7T**PD**PDO*B!Q(&ES(&%T('1H
 M92!E;F0@;V8@=&AE(&)L86YK(&)E='=E96X@=&AE('1W;R!F:65L9',@*B\*
 M*PEW:&EL92`H:7-B;&%N:R@J<2D@)B8@*'$@(3T@;&EN92DI"BL)"7$M+3L*
 M*PHK"2\J('$@:7,@870@=&AE(&)E9VEN;FEN9R!O9B!T:&4@8FQA;FL@8F5T
 M=V5E;B!T:&4@='=O(&9I96QD<R`J+PHK"6EF("@J*'$@*R`Q*2`]/2`G("<I
 M('L@"BL)"2\J($QO9V=I;F<@9F%C:6QI='D@:7,@9F]L;&]W960@8GD@82!S
 M<&%C93H@8V]M<&QA:6XN+BX@*B\**PD);&]G97)R;W(H"BL)"2`@("`B5V%R
 M;FEN9SH@7"(E<UPB(&QO9V=I;F<@9F%C:6QI='D@;F]T(&9O;&QO=V5D(&)Y
 M(&$@=&%B(BP**PD)("`@(&QI;F4I.PHK"0DO*B`N+BX@86YD(&9I>"!T:&4@
 M<')O8FQE;3H@<F5P;&%C92!A;&P@<W!A8V5S(&)Y('1A8G,@*B\**PD)9F]R
 M("@[("IQ.R!Q*RLI"BL)"0EI9B`H*G$@/3T@)R`G*0HK"0D)"2IQ/2=<="<[
 M"0HK"7T*(`H@"2\J('-C86X@=&AR;W5G:"!T:&4@;&ES="!O9B!S96QE8W1O
 M<G,@*B\*(`EF;W(@*'`@/2!L:6YE.R`J<"`F)B`J<"`A/2`G7'0G.RD@>PH@
 M"D!`("TQ,C$V+#$Q("LQ,S4R+#D@0$`*(`D)"7!R:2`]($Q/1U]04DE-05-+
 M("L@,3L*(`D)96QS92!["B`)"0EP<FD@/2!D96-O9&4H8G5F+"!P<FEO<FET
 M>6YA;65S*3L*(`D)"6EF("AP<FD@/"`P*2!["BT)"0D)*'9O:60I<VYP<FEN
 M=&8H96)U9BP@<VEZ96]F(&5B=68L"BT)"0D)("`@(")U;FMN;W=N('!R:6]R
 M:71Y(&YA;64@7"(E<UPB(BP@8G5F*3L*+0D)"0EL;V=E<G)O<BAE8G5F*3L*
 M*PD)"0EL;V=E<G)O<B@B=6YK;F]W;B!P<FEO<FET>2!N86UE(%PB)7-<(B(L
 M(&)U9BD["B`)"0D)<F5T=7)N.PH@"0D)?0H@"0E]"B`*0$`@+3$R,S0L,3(@
 M*S$S-C@L,3`@0$`*(`D)"0D)9BT^9E]P;6%S:UMI72`]('!R:3L*(`D)"65L
 M<V4@>PH@"0D)"6D@/2!D96-O9&4H8G5F+"!F86-I;&ET>6YA;65S*3L*(`D)
 M"0EI9B`H:2`\(#`I('L*+0D)"0D)*'9O:60I<VYP<FEN=&8H96)U9BP@<VEZ
 M96]F(&5B=68L"BT)"0D)"2`@("`B=6YK;F]W;B!F86-I;&ET>2!N86UE(%PB
 M)7-<(B(L"BL)"0D)"6QO9V5R<F]R*")U;FMN;W=N(&9A8VEL:71Y(&YA;64@
 M7"(E<UPB(BP*(`D)"0D)("`@(&)U9BD["BT)"0D)"6QO9V5R<F]R*&5B=68I
 M.PH@"0D)"0ER971U<FX["B`)"0D)?0H@"0D)"68M/F9?<&UA<VM;:2`^/B`S
 /72`]('!R:3L*(`D)"7T*
 `
 end

 -- 
 Emmanuel Dreyfus
 manu@netbsd.org

From: christos@zoulas.com (Christos Zoulas)
To: manu@netbsd.org (Emmanuel Dreyfus), gnats-bugs@netbsd.org,
	ljt@alum.mit.edu
Cc:  
Subject: Re: bin/13400
Date: Sat, 14 Jul 2001 19:03:03 -0400

 On Jul 14, 11:46pm, manu@netbsd.org (Emmanuel Dreyfus) wrote:
 -- Subject: bin/13400

 General:
 make a pass through all the messages and make sure they are all
 consistent. (The first word is capitalized, string args are quoted.


 +			uid = (uid_t)strtoul(user, &endp, 0);
 +			if (*endp != '\0')
 +	    		goto getuser;

 Mis-indented line.

 +		} else {
 +getuser:
 +			if ((pw = getpwnam(user)) != NULL) {
 +				uid = pw->pw_uid;
 +			} else {
 +           	errno = 0;  

 Again.

 +	if (group != NULL) {
 +		if (isdigit((unsigned char)*group)) {
 +			gid = (gid_t)strtoul(group, &endp, 0);
 +			if (*endp != '\0')
 +	    		goto getgroup;

 Again.

 +	/* 
 +	 * There should not be any space before the logging facility.
 +	 * Check this is okay, complain and fix if it is not.
 +	 */
 +	q = line;
 +	while (*q && isblank(*q)) 

 Missing (unsigned char) cast to isblank() argument.

 +		q++;
 +	/* q is at the first char of the logging facility */
 +	if (*q && (*(q - 1) == ' ')) {

 This is wrong. q - 1 can reference line[-1]; simplify:
 	if (*q && q != line) {

 +		logerror(
 +		    "Warning: \"%s\" space before the logging facility",
 +		    line);

 Forgot to set errno to 0 here, before calling logerror()

 +		/* Fix: strip all spaces/tabs before the logging facility */
 +		line = q; 
 +	}
 +
 +	/* 
 +	 * There should be at least one tab after the logging facility 
 +	 * Check this is okay, and complain and fix if it is not.
 +	 */
 +	q = line + strlen(line);
 +	while (!isblank(*q) && (q != line))
 +		q--;
 +	if ((q == line) && strlen(line)) { 
 +		/* No tabs or space in a non empty line: complain */
 +		logerror(
 +		    "Error: \"%s\" logging facility or log target missing",
 +		    line);

 Again forgot to set errno to 0.

 +	}
 +	
 +	/* q is at the end of the blank between the two fields */
 +	while (isblank(*q) && (q != line))
 +		q--;
 +
 +	/* q is at the beginning of the blank between the two fields */
 +	if (*(q + 1) == ' ') { 
 +		/* Logging facility is followed by a space: complain... */
 +		logerror(
 +		    "Warning: \"%s\" logging facility not followed by a tab",
 +		    line);
 +		/* ... and fix the problem: replace all spaces by tabs */
 +		for (; *q; q++)
 +			if (*q == ' ')
 +				*q='\t';	
 +	}

 You keep going back and forth to parse the line... You just have

 	skip_initial_spaces_and_warn();
 	collect_the_selectors();
 	skip_the_blanks_and_warn_if_you_find_space();
 	grab_the_log_recipient_and_complain_if_not_there();
 	complain_if_there_was_trailing_space();


  	/* scan through the list of selectors */
  	for (p = line; *p && *p != '\t';) {

 @@ -1216,11 +1352,9 @@
  			pri = LOG_PRIMASK + 1;
  		else {
  			pri = decode(buf, prioritynames);
  			if (pri < 0) {
 -				(void)snprintf(ebuf, sizeof ebuf,
 -				    "unknown priority name \"%s\"", buf);
 -				logerror(ebuf);
 +				logerror("unknown priority name \"%s\"", buf);
  				return;

 Again set errno to 0 before calling logerror();
  			}
  		}

 @@ -1234,12 +1368,10 @@
  					f->f_pmask[i] = pri;
  			else {
  				i = decode(buf, facilitynames);
  				if (i < 0) {
 -					(void)snprintf(ebuf, sizeof ebuf,
 -					    "unknown facility name \"%s\"",
 +					logerror("unknown facility name \"%s\"",
  					    buf);

 Again set errno to 0 before calling logerror();

 -					logerror(ebuf);
  					return;
  				}
  				f->f_pmask[i >> 3] = pri;
  			}

From: manu@netbsd.org (Emmanuel Dreyfus)
To: christos@zoulas.com, gnats-bugs@netbsd.org, ljt@alum.mit.edu
Cc:  
Subject: bin/13400
Date: Sun, 15 Jul 2001 16:56:08 +0200

 Here is the latest patch. Hope it's okay now.

 begin 644 syslogd.patch
 M26YD97@Z('-Y<VQO9V0N8PH]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]"E)#4R!F
 M:6QE.B`O8W9S<F]O="]B87-E<W)C+W5S<BYS8FEN+W-Y<VQO9V0O<WES;&]G
 M9"YC+'8*<F5T<FEE=FEN9R!R979I<VEO;B`Q+C0T"F1I9F8@+54T("UR,2XT
 M-"!S>7-L;V=D+F,*+2TM('-Y<VQO9V0N8PDR,#`Q+S`S+S(Q(#$W.C`R.C0S
 M"3$N-#0**RLK('-Y<VQO9V0N8PDR,#`Q+S`W+S$U(#$T.C4P.C4W"D!`("TQ
 M,#0L."`K,3`T+#$Q($!`"B`C:6YC;'5D92`\<W1R:6YG+F@^"B`C:6YC;'5D
 M92`\=6YI<W1D+F@^"B`C:6YC;'5D92`\=71M<"YH/@H@(VEN8VQU9&4@/'5T
 M:6PN:#X**R-I;F-L=61E(#QP=V0N:#X**R-I;F-L=61E(#QG<G`N:#X**R-I
 M;F-L=61E(#QS=&1A<F<N:#X*("-I;F-L=61E(")P871H;F%M97,N:"(*(`H@
 M(V1E9FEN92!365-,3T=?3D%-15,*("-I;F-L=61E(#QS>7,O<WES;&]G+F@^
 M"D!`("TQ.#4L."`K,3@X+#D@0$`*('-T<G5C=`EF:6QE9"`J1FEL97,["B!S
 M=')U8W0)9FEL960@8V]N<V9I;&4["B`*(&EN=`E$96)U9SL)"0DO*B!D96)U
 M9R!F;&%G("HO"BMI;G0)9&%E;6]N:7IE9"`](#`["0DO*B!W92!A<F4@;F]T
 M(&1A96UO;FEZ960@>65T("HO"B!C:&%R"4QO8V%L2&]S=$YA;65;34%82$]3
 M5$Y!345,14XK,5T["2\J(&]U<B!H;W-T;F%M92`J+PH@8VAA<@DJ3&]C86Q$
 M;VUA:6X["0DO*B!O=7(@;&]C86P@9&]M86EN(&YA;64@*B\*(&EN=`DJ9FEN
 M970@/2!.54Q,.PD)"2\J($EN=&5R;F5T(&1A=&%G<F%M('-O8VME=',@*B\*
 M(&EN=`E);FET:6%L:7IE9"`](#`["2\J('-E="!W:&5N('=E(&AA=F4@:6YI
 M=&EA;&EZ960@;W5R<V5L=F5S("HO"D!`("TR,#0L.2`K,C`X+#D@0$`*('9O
 M:60)9G!R:6YT;&]G(%]?4"@H<W1R=6-T(&9I;&5D("HL(&EN="P@8VAA<B`J
 M*2D["B!I;G0)9V5T;7-G8G5F<VEZ92!?7U`H*'9O:60I*3L*(&EN="H)<V]C
 M:W-E='5P(%]?4"@H:6YT*2D["B!V;VED"6EN:70@7U]0*"AI;G0I*3L*+79O
 M:60);&]G97)R;W(@7U]0*"AC:&%R("HI*3L**W9O:60);&]G97)R;W(@7U]0
 M*"AC;VYS="!C:&%R("HL("XN+BDI.PH@=F]I9`EL;V=M<V<@7U]0*"AI;G0L
 M(&-H87(@*BP@8VAA<B`J+"!I;G0I*3L*('9O:60)<')I;G1L:6YE(%]?4"@H
 M8VAA<B`J+"!C:&%R("HI*3L*('9O:60)<')I;G1S>7,@7U]0*"AC:&%R("HI
 M*3L*('9O:60)<F5A<&-H:6QD(%]?4"@H:6YT*2D["D!`("TR,C<L,3,@*S(S
 M,2PS-R!`0`H@"7-T<G5C="!S;V-K861D<E]U;B!S=6YX+"!F<F]M=6YI>#L*
 M(`ES=')U8W0@<V]C:V%D9')?<W1O<F%G92!F<F]M:6YE=#L*(`EC:&%R("IP
 M+"`J;&EN92P@*BIP<#L*(`ES=')U8W0@<&]L;&9D("IR96%D9F1S.PHK"75I
 M9%]T('5I9"`](#`["BL)9VED7W0@9VED(#T@,#L**PEC:&%R("IU<V5R(#T@
 M3E5,3#L**PEC:&%R("IG<F]U<"`]($Y53$P["BL)8VAA<B`J<F]O="`]("(O
 M(CL**PEC:&%R("IE;F1P.PHK"7-T<G5C="!G<F]U<"`@("IG<CL**PES=')U
 M8W0@<&%S<W=D("`J<'<["BL)"B`*(`DH=F]I9"ES971L;V-A;&4H3$-?04Q,
 M+"`B(BD["B`*+0EW:&EL92`H*&-H(#T@9V5T;W!T*&%R9V,L(&%R9W8L(")D
 M<V8Z;3IP.E`Z(BDI("$]("TQ*0HK"7=H:6QE("@H8V@@/2!G971O<'0H87)G
 M8RP@87)G=BP@(F1S9CIM.G`Z4#IU.F<Z=#HB*2D@(3T@+3$I"B`)"7-W:71C
 M:"AC:"D@>PHK"0EC87-E("=U)SH**PD)"75S97(@/2!O<'1A<F<["BL)"0EI
 M9B`H*G5S97(@/3T@)UPP)RD**PD)"0EU<V%G92@I.PHK"0D)8G)E86L["BL)
 M"6-A<V4@)V<G.@HK"0D)9W)O=7`@/2!O<'1A<F<["BL)"0EI9B`H*F=R;W5P
 M(#T]("=<,"<I"BL)"0D)=7-A9V4H*3L**PD)"6)R96%K.PHK"0EC87-E("=T
 M)SH**PD)"7)O;W0@/2!O<'1A<F<["BL)"0EI9B`H*G)O;W0@/3T@)UPP)RD*
 M*PD)"0EU<V%G92@I.PHK"0D)8G)E86L["B`)"6-A<V4@)V0G.@D)+RH@9&5B
 M=6<@*B\*(`D)"41E8G5G*RL["B`)"0EB<F5A:SL*(`D)8V%S92`G9B<Z"0DO
 M*B!C;VYF:6=U<F%T:6]N(&9I;&4@*B\*0$`@+3(U.2PQ,R`K,C@W+#0Y($!`
 M"B`)"7T*(`EI9B`H*&%R9V,@+3T@;W!T:6YD*2`A/2`P*0H@"0EU<V%G92@I
 M.PH@"BT):68@*"%$96)U9RD*+0D)*'9O:60I9&%E;6]N*#`L(#`I.PHM"65L
 M<V4*+0D)<V5T;&EN96)U9BAS=&1O=70I.PHK"7-E=&QI;F5B=68H<W1D;W5T
 M*3L**PHK"6EF("AU<V5R("$]($Y53$PI('L**PD):68@*&ES9&EG:70H*'5N
 M<VEG;F5D(&-H87(I*G5S97(I*2!["BL)"0EU:60@/2`H=6ED7W0I<W1R=&]U
 M;"AU<V5R+"`F96YD<"P@,"D["BL)"0EI9B`H*F5N9'`@(3T@)UPP)RD**PD@
 M("`@"0D)9V]T;R!G971U<V5R.PHK"0E](&5L<V4@>PHK9V5T=7-E<CH**PD)
 M"6EF("@H<'<@/2!G971P=VYA;2AU<V5R*2D@(3T@3E5,3"D@>PHK"0D)"75I
 M9"`]('!W+3YP=U]U:60["BL)"0E](&5L<V4@>PHK"0D)"65R<FYO(#T@,#L@
 M(`HK"0D)"6QO9V5R<F]R*")#86YN;W0@9FEN9"!U<V5R(&`E<R<B+"!U<V5R
 M*3L**PD)"0ED:64@*#`I.PHK"0D)?0HK"0E]"BL)?0H@"BL):68@*&=R;W5P
 M("$]($Y53$PI('L**PD):68@*&ES9&EG:70H*'5N<VEG;F5D(&-H87(I*F=R
 M;W5P*2D@>PHK"0D)9VED(#T@*&=I9%]T*7-T<G1O=6PH9W)O=7`L("9E;F1P
 M+"`P*3L**PD)"6EF("@J96YD<"`A/2`G7#`G*0HK"2`@("`)"0EG;W1O(&=E
 M=&=R;W5P.PHK"0E](&5L<V4@>PHK9V5T9W)O=7`Z"BL)"0EI9B`H*&=R(#T@
 M9V5T9W)N86TH9W)O=7`I*2`A/2!.54Q,*2!["BL)"0D)9VED(#T@9W(M/F=R
 M7V=I9#L**PD)"7T@96QS92!["BL)"0D)97)R;F\@/2`P.PHK"0D)"6QO9V5R
 M<F]R*")#86YN;W0@9FEN9"!G<F]U<"!@)7,G(BP@9W)O=7`I.PHK"0D)"61I
 M92@P*3L**PD)"7T**PD)?0HK"7T**PHK"6EF("AA8V-E<W,@*')O;W0L($9?
 M3TL@?"!27T]+*2D@>PHK"0EL;V=E<G)O<B`H(D-A;FYO="!A8V-E<W,@8"5S
 M)R(L(')O;W0I.PHK"0ED:64@*#`I.PHK"7T**PH@"6-O;G-F:6QE+F9?='EP
 M92`]($9?0T].4T],13L*(`DH=F]I9"ES=')C<'DH8V]N<V9I;&4N9E]U;BYF
 M7V9N86UE+"!C='1Y*3L*(`DH=F]I9"EG971H;W-T;F%M92A,;V-A;$AO<W1.
 M86UE+"!S:7IE;V8H3&]C86Q(;W-T3F%M92DI.PH@"4QO8V%L2&]S=$YA;65;
 M<VEZ96]F*$QO8V%L2&]S=$YA;64I("T@,5T@/2`G7#`G.PI`0"`M,C<Y+#D@
 M*S,T,RPY($!`"B`)"6QI;F5S:7IE(#T@34%83$E.13L*(`EL:6YE<VEZ92LK
 M.PH@"6QI;F4@/2!M86QL;V,H;&EN97-I>F4I.PH@"6EF("AL:6YE(#T]($Y5
 M3$PI('L*+0D);&]G97)R;W(H(F-O=6QD;B=T(&%L;&]C871E(&QI;F4@8G5F
 M9F5R(BD["BL)"6QO9V5R<F]R*")#;W5L9&XG="!A;&QO8V%T92!L:6YE(&)U
 M9F9E<B(I.PH@"0ED:64H,"D["B`)?0H@"2AV;VED*7-I9VYA;"A324=415)-
 M+"!D:64I.PH@"2AV;VED*7-I9VYA;"A324=)3E0L($1E8G5G(#\@9&EE(#H@
 M4TE'7TE'3BD["D!`("TR.3<L.2`K,S8Q+#D@0$`*(`D);&]G<&%T:%]A9&0H
 M)DQO9U!A=&AS+"`F9G5N:7AS:7IE+"`*(`D)("`@("9F=6YI>&UA>'-I>F4L
 M(%]0051(7TQ/1RD["B`)9G5N:7@@/2`H:6YT("HI;6%L;&]C*'-I>F5O9BAI
 M;G0I("H@9G5N:7AS:7IE*3L*(`EI9B`H9G5N:7@@/3T@3E5,3"D@>PHM"0EL
 M;V=E<G)O<B@B8V]U;&1N)W0@86QL;V-A=&4@9G5N:7@@9&5S8W)I<'1O<G,B
 M*3L**PD);&]G97)R;W(H(D-O=6QD;B=T(&%L;&]C871E(&9U;FEX(&1E<V-R
 M:7!T;W)S(BD["B`)"61I92@P*3L*(`E]"B`)9F]R("AJ(#T@,"P@<'`@/2!,
 M;V=0871H<SL@*G!P.R!P<"LK+"!J*RLI('L*(`D)9'!R:6YT9B@B;6%K:6YG
 M('5N:7@@9&=R86T@<V]C:V5T("5S7&XB+"`J<'`I.PI`0"`M,S$P+#$U("LS
 M-S0L.2!`0`H@"0EF=6YI>%MJ72`]('-O8VME="A!1E],3T-!3"P@4T]#2U]$
 M1U)!32P@,"D["B`)"6EF("AF=6YI>%MJ72`\(#`@?'P@8FEN9"AF=6YI>%MJ
 M72P*(`D)("`@("AS=')U8W0@<V]C:V%D9'(@*BDF<W5N>"P@4U5.7TQ%3B@F
 M<W5N>"DI(#P@,"!\?`H@"0D@("`@8VAM;V0H*G!P+"`P-C8V*2`\(#`I('L*
 M+0D)"6EN="!S97)R;F\@/2!E<G)N;SL*+0D)"2AV;VED*7-N<')I;G1F*&QI
 M;F4L('-I>F5O9B!L:6YE+`HM"0D)("`@(")C86YN;W0@8W)E871E("5S(BP@
 M*G!P*3L*+0D)"65R<FYO(#T@<V5R<FYO.PHM"0D);&]G97)R;W(H;&EN92D[
 M"BT)"0EE<G)N;R`]('-E<G)N;SL*+0D)"61P<FEN=&8H(F-A;FYO="!C<F5A
 M=&4@)7,@*"5D*5QN(BP@*G!P+"!E<G)N;RD["BL)"0EL;V=E<G)O<B@B0V%N
 M;F]T(&-R96%T92!@)7,G(BP@*G!P*3L*(`D)"61I92@P*3L*(`D)?0H@"0ED
 M<')I;G1F*")L:7-T96YI;F<@;VX@=6YI>"!D9W)A;2!S;V-K970@)7-<;B(L
 M("IP<"D["B`)?0I`0"`M,S0R+#D@*S0P,"PY($!`"B`)+RH@<V5T=7`@<&]L
 M;&9D('-E="X@*B\*(`ER96%D9F1S(#T@*'-T<G5C="!P;VQL9F0@*BEM86QL
 M;V,H<VEZ96]F*'-T<G5C="!P;VQL9F0I("H*(`D)"2AF=6YI>'-I>F4@*R`H
 M9FEN970@/R`J9FEN970@.B`P*2`K(#$I*3L*(`EI9B`H<F5A9&9D<R`]/2!.
 M54Q,*2!["BT)"6QO9V5R<F]R*")C;W5L9&XG="!A;&QO8V%T92!P;VQL9F1S
 M(BD["BL)"6QO9V5R<F]R*")#;W5L9&XG="!A;&QO8V%T92!P;VQL9F1S(BD[
 M"B`)"61I92@P*3L*(`E]"B`);F9D<R`](#`["B`):68@*&9K;&]G(#X](#`I
 M('L*0$`@+3,V-2PQ-R`K-#(S+#0W($!`"B`)"7)E861F9'-;;F9D<UTN9F0@
 M/2!F=6YI>%MJ*RM=.PH@"0ER96%D9F1S6VYF9',K*UTN979E;G1S(#T@4$],
 M3$E.('P@4$],3%!223L*(`E]"B`**PDO*B`**PD@*B!!;&P@9FEL97,@87)E
 M(&]P96XL('=E(&-A;B!D<F]P('!R:79I;&5G97,@86YD(&-H<F]O=`HK"2`J
 M+PHK"61P<FEN=&8@*")A='1E;7!T('1O(&-H<F]O="!T;R!@)7,G7&XB+"!R
 M;V]T*3L@(`HK"6EF("AC:')O;W0@*')O;W0I*2!["BL)"6QO9V5R<F]R("@B
 M1F%I;&5D('1O(&-H<F]O="!T;R!@)7,G(BP@<F]O="D["BL)"61I92@P*3L*
 M*PE]"BL)9'!R:6YT9B`H(F%T=&5M<'0@=&\@<V5T($=)1"]%1TE$('1O(&`E
 M9"=<;B(L(&=I9"D[("`**PEI9B`H<V5T9VED("AG:60I('Q\('-E=&5G:60@
 M*&=I9"DI('L**PD);&]G97)R;W(@*")&86EL960@=&\@<V5T(&=I9"!T;R!@
 M)60G(BP@9VED*3L**PD)9&EE*#`I.PHK"7T**PED<')I;G1F("@B871T96UP
 M="!T;R!S970@54E$+T55240@=&\@8"5D)UQN(BP@=6ED*3L@(`HK"6EF("AS
 M971U:60@*'5I9"D@?'P@<V5T975I9"`H=6ED*2D@>PHK"0EL;V=E<G)O<B`H
 M(D9A:6QE9"!T;R!S970@=6ED('1O(&`E9"<B+"!U:60I.PHK"0ED:64H,"D[
 M"BL)?0HK"BL)+RH@"BL)("H@5V4@8V%N;F]T(&1E=&%C:"!F<F]M('1H92!T
 M97)M:6YA;"!B969O<F4@=V4@87)E('-U<F4@=V4@=V]N)W0@"BL)("H@:&%V
 M92!A(&9A=&%L(&5R<F]R+"!B96-A=7-E(&5R<F]R(&UE<W-A9V4@=V]U;&0@
 M;F]T(&=O('1O('1H90HK"2`J('1E<FUI;F%L(&%N9"!W;W5L9"!N;W0@8F4@
 M;&]G9V5D(&)E8V%U<V4@<WES;&]G9"!D:65S+B`**PD@*B!!;&P@9&EE*"D@
 M8V%L;',@87)E(&)E:&EN9"!U<RP@=V4@8V%N(&-A;&P@9&%E;6]N*"D**PD@
 M*B\**PEI9B`H(41E8G5G*2!["BL)"2AV;VED*61A96UO;B@P+"`P*3L**PD)
 M9&%E;6]N:7IE9"`](#$["BL)?0HK"B`)9F]R("@[.RD@>PH@"0EI;G0@<G8[
 M"B`*(`D)<G8@/2!P;VQL*')E861F9',L(&YF9',L($E.1E1)32D["B`)"6EF
 M("AR=B`]/2`P*0H@"0D)8V]N=&EN=64["B`)"6EF("AR=B`\(#`I('L*(`D)
 M"6EF("AE<G)N;R`A/2!%24Y44BD*+0D)"0EL;V=E<G)O<B@B<&]L;"(I.PHK
 M"0D)"6QO9V5R<F]R*")P;VQL*"D@9F%I;&5D(BD["B`)"0EC;VYT:6YU93L*
 M(`D)?0H@"0ED<')I;G1F*")G;W0@82!M97-S86=E("@E9"E<;B(L(')V*3L*
 M(`D):68@*&9K;&]G(#X](#`@)B8*0$`@+3,X-2PY("LT-S,L.2!`0`H@"0D)
 M:68@*&D@/B`P*2!["B`)"0D);&EN95MI72`]("=<,"<["B`)"0D)<')I;G1S
 M>7,H;&EN92D["B`)"0E](&5L<V4@:68@*&D@/"`P("8F(&5R<FYO("$]($5)
 M3E12*2!["BT)"0D);&]G97)R;W(H(FML;V<B*3L**PD)"0EL;V=E<G)O<B@B
 M:VQO9R!F86EL960B*3L*(`D)"0EF:VQO9R`]("TQ.PH@"0D)?0H@"0E]"B`)
 M"69O<B`H:B`](#`L('!P(#T@3&]G4&%T:',[("IP<#L@<'`K*RP@:BLK*2![
 M"D!`("TT,#(L,34@*S0Y,"PY($!`"B`)"0EI9B`H:2`^(#`I('L*(`D)"0EL
 M:6YE6VE=(#T@)UPP)SL*(`D)"0EP<FEN=&QI;F4H3&]C86Q(;W-T3F%M92P@
 M;&EN92D["B`)"0E](&5L<V4@:68@*&D@/"`P("8F(&5R<FYO("$]($5)3E12
 M*2!["BT)"0D)8VAA<B!B=69;34%84$%42$Q%3ET["BT)"0D):6YT('-E<G)N
 M;R`](&5R<FYO.PHM"BT)"0D)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8@
 M8G5F+`HM"0D)"2`@("`B<F5C=F9R;VT@=6YI>"`E<R(L("IP<"D["BT)"0D)
 M97)R;F\@/2!S97)R;F\["BT)"0D);&]G97)R;W(H8G5F*3L**PD)"0EL;V=E
 M<G)O<B@B<F5C=F9R;VTH*2!U;FEX(&`E<R<B+"`J<'`I.PH@"0D)?0H@"0E]
 M"B`)"6EF("AF:6YE="`F)B`A4V5C=7)E36]D92D@>PH@"0D)9F]R("AJ(#T@
 M,#L@:B`\("IF:6YE=#L@:BLK*2!["D!`("TT,C4L.2`K-3`W+#D@0$`*(`D)
 M"0D)"6QI;F5;:5T@/2`G7#`G.PH@"0D)"0D)<')I;G1L:6YE*&-V=&AN86UE
 M*"9F<F]M:6YE="DL"B`)"0D)"0D@("`@;&EN92D["B`)"0D)"7T@96QS92!I
 M9B`H:2`\(#`@)B8@97)R;F\@(3T@14E.5%(I"BT)"0D)"0EL;V=E<G)O<B@B
 M<F5C=F9R;VT@:6YE="(I.PHK"0D)"0D);&]G97)R;W(H(G)E8W9F<F]M*"D@
 M:6YE="(I.PH@"0D)"7T*(`D)"7T*(`D)?0H@"7T*0$`@+30V-2PY("LU-#<L
 M.2!`0`H@"0EE;'-E"B`)"0DJ;6%X<WIP("H](#(["B`)"2IL<"`](')E86QL
 M;V,H*FQP+"!S:7IE;V8H8VAA<B`J*2`J("@J;6%X<WIP("L@,2DI.PH@"0EI
 M9B`H*FQP(#T]($Y53$PI('L*+0D)"6QO9V5R<F]R*")C;W5L9&XG="!A;&QO
 M8V%T92!L:6YE(&)U9F9E<B(I.PHK"0D);&]G97)R;W(H(D-O=6QD;B=T(&%L
 M;&]C871E(&QI;F4@8G5F9F5R(BD["B`)"0ED:64H,"D["B`)"7T*(`E]"B`)
 M*"IL<"E;*"IS>G`I*RM=(#T@;F5W.PI`0"`M-#@W+#$S("LU-CDL.2!`0`H@
 M"7-I>F5?="!L96X["B`*(`EF<"`](&9O<&5N*&9I;&4L(")R(BD["B`):68@
 M*&9P(#T]($Y53$PI('L*+0D):6YT('-E<G)N;R`](&5R<FYO.PHM"BT)"61P
 M<FEN=&8H(F-A;B=T(&]P96X@)7,@*"5D*5QN(BP@9FEL92P@97)R;F\I.PHM
 M"0EE<G)N;R`]('-E<G)N;SL*+0D);&]G97)R;W(H(F-O=6QD(&YO="!O<&5N
 M('-O8VME="!F:6QE(&QI<W0B*3L**PD);&]G97)R;W(H(D-O=6QD(&YO="!O
 M<&5N('-O8VME="!F:6QE(&QI<W0@8"5S)R(L(&9I;&4I.PH@"0ED:64H,"D[
 M"B`)?0H@"B`)=VAI;&4@*"AL:6YE(#T@9F=E=&QN*&9P+"`F;&5N*2DI('L*
 M0$`@+3<Y.2PY("LX-S<L.2!`0`H@"0D)"7T*(`D)"7T*(`D)"6EF("AL<V5N
 M="`A/2!L*2!["B`)"0D)9BT^9E]T>7!E(#T@1E]53E53140["BT)"0D);&]G
 M97)R;W(H(G-E;F1T;R(I.PHK"0D)"6QO9V5R<F]R*")S96YD=&\H*2!F86EL
 M960B*3L*(`D)"7T*(`D)?0H@"0EB<F5A:SL*(`I`0"`M.3@Y+#0Q("LQ,#8W
 M+#4S($!`"B`O*@H@("H@4')I;G0@<WES;&]G9"!E<G)O<G,@<V]M92!P;&%C
 M92X*("`J+PH@=F]I9`HM;&]G97)R;W(H='EP92D*+0EC:&%R("IT>7!E.PHK
 M;&]G97)R;W(H8V]N<W0@8VAA<B`J9FUT+"`N+BXI"B!["BT)8VAA<B!B=69;
 M,3`P73L**PEV85]L:7-T(&%P.PHK"6-H87(@=&UP8G5F6T)51E-)6ET["BL)
 M8VAA<B!B=69;0E5&4TE:73L*(`HK"79A7W-T87)T*&%P+"!F;70I.PHK"BL)
 M*'9O:60I=G-N<')I;G1F*'1M<&)U9BP@<VEZ96]F*'1M<&)U9BDL(&9M="P@
 M87`I.PHK"BL)=F%?96YD*&%P*3L**PH@"6EF("AE<G)N;RD*+0D)*'9O:60I
 M<VYP<FEN=&8H8G5F+`HM"0D@("`@<VEZ96]F*&)U9BDL(")S>7-L;V=D.B`E
 M<SH@)7,B+"!T>7!E+"!S=')E<G)O<BAE<G)N;RDI.PHK"0DH=F]I9"ES;G!R
 M:6YT9BAB=68L('-I>F5O9BAB=68I+"`B<WES;&]G9#H@)7,Z("5S(BP@"BL)
 M"2`@("!T;7!B=68L('-T<F5R<F]R*&5R<FYO*2D["B`)96QS90HM"0DH=F]I
 M9"ES;G!R:6YT9BAB=68L('-I>F5O9BAB=68I+"`B<WES;&]G9#H@)7,B+"!T
 M>7!E*3L*+0EE<G)N;R`](#`["BT)9'!R:6YT9B@B)7-<;B(L(&)U9BD["BT)
 M;&]G;7-G*$Q/1U]365-,3T=\3$]'7T524BP@8G5F+"!,;V-A;$AO<W1.86UE
 M+"!!1$1$051%*3L**PD)*'9O:60I<VYP<FEN=&8H8G5F+"!S:7IE;V8H8G5F
 M*2P@(G-Y<VQO9V0Z("5S(BP@=&UP8G5F*3L**PHK"6EF("AD865M;VYI>F5D
 M*2`**PD);&]G;7-G*$Q/1U]365-,3T=\3$]'7T524BP@8G5F+"!,;V-A;$AO
 M<W1.86UE+"!!1$1$051%*3L**PEI9B`H(61A96UO;FEZ960@)B8@1&5B=6<I
 M"BL)"61P<FEN=&8H(B5S7&XB+"!B=68I.PHK"6EF("@A9&%E;6]N:7IE9"`F
 M)B`A1&5B=6<I"BL)"7!R:6YT9B@B)7-<;B(L(&)U9BD["BL**PER971U<FX[
 M"B!]"B`*('9O:60*(&1I92AS:6=N;RD*(`EI;G0@<VEG;F\["B!["B`)<W1R
 M=6-T(&9I;&5D("IF.PHM"6-H87(@8G5F6S$P,%TL("HJ<#L**PEC:&%R("HJ
 M<#L*(`H@"69O<B`H9B`]($9I;&5S.R!F("$]($Y53$P[(&8@/2!F+3YF7VYE
 M>'0I('L*(`D)+RH@9FQU<V@@86YY('!E;F1I;F<@;W5T<'5T("HO"B`)"6EF
 M("AF+3YF7W!R979C;W5N="D*(`D)"69P<FEN=&QO9RAF+"`P+"`H8VAA<B`J
 M*4Y53$PI.PH@"7T*+0EI9B`H<VEG;F\I('L*+0D)9'!R:6YT9B@B<WES;&]G
 M9#H@97AI=&EN9R!O;B!S:6=N86P@)61<;B(L('-I9VYO*3L*+0D)*'9O:60I
 M<VYP<FEN=&8H8G5F+"!S:7IE;V8@8G5F+"`B97AI=&EN9R!O;B!S:6=N86P@
 M)60B+"!S:6=N;RD["BT)"65R<FYO(#T@,#L*+0D);&]G97)R;W(H8G5F*3L*
 M+0E]"BL)97)R;F\@/2`P.PHK"6EF("AS:6=N;RD**PD);&]G97)R;W(H(D5X
 M:71I;F<@;VX@<VEG;F%L("5D7&XB+"!S:6=N;RD["BL)96QS90HK"0EL;V=E
 M<G)O<B@B1F%T86P@97)R;W(L(&5X:71T:6YG(BD["B`)9F]R("AP(#T@3&]G
 M4&%T:',[('`@)B8@*G`[('`K*RD*(`D)=6YL:6YK*"IP*3L*(`EE>&ET*#`I
 M.PH@?0I`0"`M,3`W-2PY("LQ,38U+#D@0$`*(`H@"6EF("AF:6YE="D@>PH@
 M"0EF;W(@*&D@/2`P.R!I(#P@*F9I;F5T.R!I*RLI('L*(`D)"6EF("AC;&]S
 M92AF:6YE=%MI*S%=*2`\(#`I('L*+0D)"0EL;V=E<G)O<B@B8VQO<V4B*3L*
 M*PD)"0EL;V=E<G)O<B@B8VQO<V4H*2!F86EL960B*3L*(`D)"0ED:64H,"D[
 M"B`)"0E]"B`)"7T*(`E]"D!`("TQ,34Y+#D@*S$R-#DL.2!`0`H@"6EF("AF
 M:6YE="D@>PH@"0EI9B`H4V5C=7)E36]D92D@>PH@"0D)9F]R("AI(#T@,#L@
 M:2`\("IF:6YE=#L@:2LK*2!["B`)"0D):68@*'-H=71D;W=N*&9I;F5T6VDK
 M,5TL(%-(551?4D0I(#P@,"D@>PHM"0D)"0EL;V=E<G)O<B@B<VAU=&1O=VXB
 M*3L**PD)"0D);&]G97)R;W(H(G-H=71D;W=N*"D@9F%I;&5D(BD["B`)"0D)
 M"61I92@P*3L*(`D)"0E]"B`)"0E]"B`)"7T@96QS90I`0"`M,3$X,RPY("LQ
 M,C<S+#D@0$`*('L*(`ES=')U8W0@861D<FEN9F\@:&EN=',L("IR97,["B`)
 M:6YT("`@(&5R<F]R+"!I+"!P<FD["B`)8VAA<B`@("IB<"P@*G`L("IQ.PHM
 M"6-H87(@("!B=69;34%83$E.15TL(&5B=69;,3`P73L**PEC:&%R("`@8G5F
 M6TU!6$Q)3D5=.PH@"B`)9'!R:6YT9B@B8V9L:6YE*"5S*5QN(BP@;&EN92D[
 M"B`*(`EE<G)N;R`](#`["2\J(&ME97`@<W1R97)R;W(H*2!S='5F9B!O=70@
 M;V8@;&]G97)R;W(@;65S<V%G97,@*B\*0$`@+3$Q.3,L."`K,3(X,RPU-R!`
 M0`H@"2\J(&-L96%R(&]U="!F:6QE(&5N=')Y("HO"B`);65M<V5T*&8L(#`L
 M('-I>F5O9B@J9BDI.PH@"69O<B`H:2`](#`[(&D@/#T@3$]'7TY&04-)3$E4
 M2453.R!I*RLI"B`)"68M/F9?<&UA<VM;:5T@/2!)3E1%4DY!3%].3U!223L*
 M*PD**PDO*B`**PD@*B!4:&5R92!S:&]U;&0@;F]T(&)E(&%N>2!S<&%C92!B
 M969O<F4@=&AE(&QO9V=I;F<@9F%C:6QI='DN"BL)("H@0VAE8VL@=&AI<R!I
 M<R!O:V%Y+"!C;VUP;&%I;B!A;F0@9FEX(&EF(&ET(&ES(&YO="X**PD@*B\*
 M*PEQ(#T@;&EN93L**PEW:&EL92`H*G$@)B8@:7-B;&%N:R@H=6YS:6=N960@
 M8VAA<BDJ<2DI(`HK"0EQ*RL["BL)+RH@<2!I<R!A="!T:&4@9FER<W0@8VAA
 M<B!O9B!T:&4@;&]G9VEN9R!F86-I;&ET>2`J+PHK"6EF("@J<2`F)B`H<2`A
 M/2!L:6YE*2`F)B`H*BAQ("T@,2D@/3T@)R`G*2D@>PHK"0EE<G)N;R`](#`[
 M"BL)"6QO9V5R<F]R*`HK"0D@("`@(E=A<FYI;F<Z(&`E<R<@<W!A8V4@8F5F
 M;W)E('1H92!L;V=G:6YG(&9A8VEL:71Y(BP**PD)("`@(&QI;F4I.PHK"0DO
 M*B!&:7@Z('-T<FEP(&%L;"!S<&%C97,O=&%B<R!B969O<F4@=&AE(&QO9V=I
 M;F<@9F%C:6QI='D@*B\**PD);&EN92`]('$[(`HK"7T**PHK"2\J(`HK"2`J
 M(%1H97)E('-H;W5L9"!B92!A="!L96%S="!O;F4@=&%B(&%F=&5R('1H92!L
 M;V=G:6YG(&9A8VEL:71Y(`HK"2`J($-H96-K('1H:7,@:7,@;VMA>2P@86YD
 M(&-O;7!L86EN(&%N9"!F:7@@:68@:70@:7,@;F]T+@HK"2`J+PHK"7$@/2!L
 M:6YE("L@<W1R;&5N*&QI;F4I.PHK"7=H:6QE("@A:7-B;&%N:R@H=6YS:6=N
 M960@8VAA<BDJ<2D@)B8@*'$@(3T@;&EN92DI"BL)"7$M+3L**PEI9B`H*'$@
 M/3T@;&EN92D@)B8@<W1R;&5N*&QI;F4I*2![(`HK"0DO*B!.;R!T86)S(&]R
 M('-P86-E(&EN(&$@;F]N(&5M<'1Y(&QI;F4Z(&-O;7!L86EN("HO"BL)"65R
 M<FYO(#T@,#L**PD);&]G97)R;W(H"BL)"2`@("`B17)R;W(Z(&`E<R<@;&]G
 M9VEN9R!F86-I;&ET>2!O<B!L;V<@=&%R9V5T(&UI<W-I;F<B+`HK"0D@("`@
 M;&EN92D["BL)?0HK"0HK"2\J('$@:7,@870@=&AE(&5N9"!O9B!T:&4@8FQA
 M;FL@8F5T=V5E;B!T:&4@='=O(&9I96QD<R`J+PHK"7=H:6QE("AI<V)L86YK
 M*"AU;G-I9VYE9"!C:&%R*2IQ*2`F)B`H<2`A/2!L:6YE*2D**PD)<2TM.PHK
 M"BL)+RH@<2!I<R!A="!T:&4@8F5G:6YN:6YG(&]F('1H92!B;&%N:R!B971W
 M965N('1H92!T=V\@9FEE;&1S("HO"BL):68@*"HH<2`K(#$I(#T]("<@)RD@
 M>R`**PD)+RH@3&]G9VEN9R!F86-I;&ET>2!I<R!F;VQL;W=E9"!B>2!A('-P
 M86-E.B!C;VUP;&%I;BXN+B`J+PHK"0EE<G)N;R`](#`["BL)"6QO9V5R<F]R
 M*`HK"0D@("`@(E=A<FYI;F<Z(&`E<R<@;&]G9VEN9R!F86-I;&ET>2!N;W0@
 M9F]L;&]W960@8GD@82!T86(B+`HK"0D@("`@;&EN92D["BL)"2\J("XN+B!A
 M;F0@9FEX('1H92!P<F]B;&5M.B!R97!L86-E(&%L;"!S<&%C97,@8GD@=&%B
 M<R`J+PHK"0EF;W(@*#L@*G$[('$K*RD**PD)"6EF("@J<2`]/2`G("<I"BL)
 M"0D)*G$])UQT)SL)"BL)?0H@"B`)+RH@<V-A;B!T:')O=6=H('1H92!L:7-T
 M(&]F('-E;&5C=&]R<R`J+PH@"69O<B`H<"`](&QI;F4[("IP("8F("IP("$]
 M("=<="<[*2!["B`*0$`@+3$R,38L,3$@*S$S-34L,3`@0$`*(`D)"7!R:2`]
 M($Q/1U]04DE-05-+("L@,3L*(`D)96QS92!["B`)"0EP<FD@/2!D96-O9&4H
 M8G5F+"!P<FEO<FET>6YA;65S*3L*(`D)"6EF("AP<FD@/"`P*2!["BT)"0D)
 M*'9O:60I<VYP<FEN=&8H96)U9BP@<VEZ96]F(&5B=68L"BT)"0D)("`@(")U
 M;FMN;W=N('!R:6]R:71Y(&YA;64@7"(E<UPB(BP@8G5F*3L*+0D)"0EL;V=E
 M<G)O<BAE8G5F*3L**PD)"0EE<G)N;R`](#`["BL)"0D);&]G97)R;W(H(E5N
 M:VYO=VX@<')I;W)I='D@;F%M92!@)7,G(BP@8G5F*3L*(`D)"0ER971U<FX[
 M"B`)"0E]"B`)"7T*(`I`0"`M,3(S-"PQ,B`K,3,W,BPQ,2!`0`H@"0D)"0EF
 M+3YF7W!M87-K6VE=(#T@<')I.PH@"0D)96QS92!["B`)"0D):2`](&1E8V]D
 M92AB=68L(&9A8VEL:71Y;F%M97,I.PH@"0D)"6EF("AI(#P@,"D@>PHM"0D)
 M"0DH=F]I9"ES;G!R:6YT9BAE8G5F+"!S:7IE;V8@96)U9BP*+0D)"0D)("`@
 M(")U;FMN;W=N(&9A8VEL:71Y(&YA;64@7"(E<UPB(BP**PD)"0D)97)R;F\@
 M/2`P.PHK"0D)"0EL;V=E<G)O<B@B56YK;F]W;B!F86-I;&ET>2!N86UE(&`E
 M<R<B+`H@"0D)"0D@("`@8G5F*3L*+0D)"0D);&]G97)R;W(H96)U9BD["B`)
 M"0D)"7)E='5R;CL*(`D)"0E]"B`)"0D)9BT^9E]P;6%S:UMI(#X^(#-=(#T@
 M<')I.PH@"0D)?0I`0"`M,3,X,RPR,R`K,34R,"PR,R!`0`H@"69O<B`H;6%X
 M<R`](#`L('(@/2!R97,[('([('(@/2!R+3YA:5]N97AT+"!M87AS*RLI"B`)
 M"6-O;G1I;G5E.PH@"7-O8VMS(#T@;6%L;&]C("@H;6%X<RLQ*2`J('-I>F5O
 M9BAI;G0I*3L*(`EI9B`H(7-O8VMS*2!["BT)"6QO9V5R<F]R*")C;W5L9&XG
 M="!A;&QO8V%T92!M96UO<GD@9F]R('-O8VME=',B*3L**PD);&]G97)R;W(H
 M(D-O=6QD;B=T(&%L;&]C871E(&UE;6]R>2!F;W(@<V]C:V5T<R(I.PH@"0ED
 M:64H,"D["B`)?0H@"B`)*G-O8VMS(#T@,#L@("`O*B!N=6T@;V8@<V]C:V5T
 M<R!C;W5N=&5R(&%T('-T87)T(&]F(&%R<F%Y("HO"B`)<R`]('-O8VMS*S$[
 M"B`)9F]R("AR(#T@<F5S.R!R.R!R(#T@<BT^86E?;F5X="D@>PH@"0DJ<R`]
 M('-O8VME="AR+3YA:5]F86UI;'DL('(M/F%I7W-O8VMT>7!E+"!R+3YA:5]P
 M<F]T;V-O;"D["B`)"6EF("@J<R`\(#`I('L*+0D)"6QO9V5R<F]R*")S;V-K
 M970B*3L**PD)"6QO9V5R<F]R*")S;V-K970H*2!F86EL960B*3L*(`D)"6-O
 M;G1I;G5E.PH@"0E]"B`)"6EF("@A4V5C=7)E36]D92`F)B!B:6YD*"IS+"!R
 M+3YA:5]A9&1R+"!R+3YA:5]A9&1R;&5N*2`\(#`I('L**PD)"6QO9V5R<F]R
 M*")B:6YD*"D@9F%I;&5D(BD["B`)"0EC;&]S92`H*G,I.PHM"0D);&]G97)R
 M;W(H(F)I;F0B*3L*(`D)"6-O;G1I;G5E.PH@"0E]"B`*(`D)*G-O8VMS(#T@
 ,*G-O8VMS("L@,3L*
 `
 end

 -- 
 Emmanuel Dreyfus
 manu@netbsd.org

From: christos@zoulas.com (Christos Zoulas)
To: manu@netbsd.org (Emmanuel Dreyfus), gnats-bugs@netbsd.org,
	ljt@alum.mit.edu
Cc:  
Subject: Re: bin/13400
Date: Sun, 15 Jul 2001 11:58:07 -0400

 On Jul 15,  4:56pm, manu@netbsd.org (Emmanuel Dreyfus) wrote:
 -- Subject: bin/13400

 | Here is the latest patch. Hope it's okay now.

 Yup that looks good now. The only question is: Is it exiting or exitting?
 I think it is "exiting".

 christos
State-Changed-From-To: open->closed 
State-Changed-By: manu 
State-Changed-When: Sun Jul 15 22:01:25 PDT 2001 
State-Changed-Why:  
The patches to syslogd were commited 
>Unformatted:
 syslogd.conf

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.