Date: Tue, 10 Apr 2001 11:42:54 -0500 (CDT) From: gil@arlut.utexas.edu To: FreeBSD-gnats-submit@freebsd.org Subject: misc/26486: setnetgrent hangs when netgroup contains empty netgroup Message-ID: <200104101642.f3AGgs050799@csdpc2.arlut.utexas.edu>
index | next in thread | raw e-mail
>Number: 26486
>Category: misc
>Synopsis: setnetgrent hangs when netgroup contains empty netgroup
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Apr 10 09:50:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: Gil Kloepfer
>Release: FreeBSD 4.2-RELEASE i386
>Organization:
UT Applied Research Laboratories
>Environment:
FreeBSD 4.2-RELEASE, and 4.3-RC2, probably others, using
NIS netgroups.
>Description:
NIS (yp) netgroups set-up as follows:
ssh-users adg-ssh-users omg-ssh-users
adg-ssh-users
omg-ssh-users (-,foo,) (-,bar,)
A call to setnetgrent("ssh-users") will hang due to the empty
adg-ssh-users netgroup. However, it does work when accessed
via /etc/passwd using the +@ syntax...
>How-To-Repeat:
using above conditions...
#include <stdlib.h>
#include <stdio.h>
main()
{
char *nh, *nu, *nd;
printf("1\n");
setnetgrent("ssh-users");
printf("2\n");
nh = nu = nd = (char *)0;
while (getnetgrent(&nh, &nu, &nd) > 0) {
printf("3\n");
printf("> %s\n", nu);
}
printf("4\n");
endnetgrent();
printf("5\n");
exit(0);
}
>Fix:
Currently investigating where the hang is occuring. Will update
as soon as I find out more, unless someone else finds it first
and lets me know. Probably in the parse_netgrp function in
/usr/src/lib/libc/gen/getnetgrent.c
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200104101642.f3AGgs050799>
