From owner-freebsd-current@FreeBSD.ORG Thu Aug 25 11:41:16 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id D086516A41F; Thu, 25 Aug 2005 11:41:16 +0000 (GMT) (envelope-from fli+freebsd-current@shapeshifter.se) Received: from mx1.h3q.net (manticore.shapeshifter.se [212.37.5.30]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4120643D73; Thu, 25 Aug 2005 11:41:07 +0000 (GMT) (envelope-from fli+freebsd-current@shapeshifter.se) Received: from localhost (localhost [127.0.0.1]) by mx1.h3q.net (Postfix) with ESMTP id B707E1A700; Thu, 25 Aug 2005 13:41:04 +0200 (CEST) Received: from mx1.h3q.net ([127.0.0.1]) by localhost (manticore.shapeshifter.se [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 80382-05; Thu, 25 Aug 2005 13:41:03 +0200 (CEST) Received: from [192.168.0.96] (h4n2fls31o270.telia.com [217.208.199.4]) by mx1.h3q.net (Postfix) with ESMTP id D0D881A73B; Thu, 25 Aug 2005 13:41:02 +0200 (CEST) Message-ID: <430DAE4D.60009@shapeshifter.se> Date: Thu, 25 Aug 2005 13:41:01 +0200 From: Fredrik Lindberg User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050816) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Colin Percival References: <430C36BD.1020808@gmail.com> <20050824222516.GA1106@wantadilla.lemis.com> <430D665B.9030108@gmail.com> <430D7853.8070407@freebsd.org> In-Reply-To: <430D7853.8070407@freebsd.org> Content-Type: multipart/mixed; boundary="------------030002080109010808040306" X-Virus-Scanned: at mail.hamnpolare.net Cc: Nikolay Kalev , freebsd-current@freebsd.org, liamfoy@dragonflybsd.org Subject: Re: Coredump in chkgrp (was Re: unknown coredump !) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Aug 2005 11:41:16 -0000 This is a multi-part message in MIME format. --------------030002080109010808040306 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Colin Percival wrote: > [Bug report CCed to author of bug] > > Nikolay Kalev wrote: > >>chkgrp: /etc/group: line 30: missing field(s) >>Segmentation fault (core dumped) >>Exit 3 >> >>so i found the problem in my group file there was a bugy line that i >>added ... i;m not sure if this is normal to coredump when the syntax in >>/etc/group is mistaken ??? >> >>the line was : "user:1001:" and it has to be "user:*:1001:" > > > This bug was added in revision 1.9 of src/usr.sbin/chkgrp/chkgrp.c. If > a line of the group file has the wrong number of fields, the pointers > f[0], f[1], f[2], and f[3] might point at deadc0de; prior to this revision, > the number of fields was checked first and processing halted if it was > wrong. > > I'm busy for the next few days, but if this is still unfixed on Monday I'll > take care of it. > > Colin Percival Here is a patch that should fix this. Fredrik Lindberg --------------030002080109010808040306 Content-Type: text/plain; name="chkgrp.c-20050825.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="chkgrp.c-20050825.patch" Index: chkgrp.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/chkgrp/chkgrp.c,v retrieving revision 1.10 diff -u -r1.10 chkgrp.c --- chkgrp.c 4 Aug 2005 12:44:36 -0000 1.10 +++ chkgrp.c 25 Aug 2005 10:50:25 -0000 @@ -133,18 +133,20 @@ } /* check that none of the fields contain whitespace */ - for (k = 0; k < 4; k++) { - if (strcspn(f[k], " \t") != strlen(f[k])) { + for (i = 0; i < k; i++) { + if (strcspn(f[i], " \t") != strlen(f[i])) { warnx("%s: line %d: field %d contains whitespace", - gfn, n, k+1); + gfn, n, i+1); e++; } } /* check that the GID is numeric */ - if (strspn(f[2], "0123456789") != strlen(f[2])) { - warnx("%s: line %d: GID is not numeric", gfn, n); - e++; + if (k > 2) { + if (strspn(f[2], "0123456789") != strlen(f[2])) { + warnx("%s: line %d: GID is not numeric", gfn, n); + e++; + } } #if 0 --------------030002080109010808040306--