Date: Thu, 25 Aug 2005 13:41:01 +0200 From: Fredrik Lindberg <fli+freebsd-current@shapeshifter.se> To: Colin Percival <cperciva@freebsd.org> Cc: Nikolay Kalev <nkalev@gmail.com>, freebsd-current@freebsd.org, liamfoy@dragonflybsd.org Subject: Re: Coredump in chkgrp (was Re: unknown coredump !) Message-ID: <430DAE4D.60009@shapeshifter.se> In-Reply-To: <430D7853.8070407@freebsd.org> References: <430C36BD.1020808@gmail.com> <20050824222516.GA1106@wantadilla.lemis.com> <430D665B.9030108@gmail.com> <430D7853.8070407@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?430DAE4D.60009>