Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 21 Dec 1996 14:36:50 +1100
From:      davidn@sdev.usn.blaze.net.au (David Nugent)
To:        wosch@cs.tu-berlin.de (Wolfram Schneider)
Cc:        current@freebsd.org, wpaul@frebsd.org.cs.tu-berlin.de
Subject:   Re: group(5) limits
Message-ID:  <Mutt.19961221143650.davidn@sdev.blaze.net.au>
In-Reply-To: <199612170124.CAA02231@campa.panke.de>; from Wolfram Schneider on Dec 17, 1996 02:24:34 %2B0100
References:  <199612170124.CAA02231@campa.panke.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Wolfram Schneider writes:
> The current limit is 200 members per group or maximum 1024 character per
> line. I changed getgrent(3) to use dynamic allocated buffers
> instead static buffers. No member or line length limit anymore -
> now 500 members or 5000 members are possible.

Good (although it causes me some work too :-)). This was on my
todo list.

It would be nice if this supported line continuation as well,
which I believe is already supported by NIS (at least in the
netgroups file). Keeping lines below 1024 characters is kinder
on manual management too.

> @@ -207,6 +230,9 @@
>  	if (_gr_fp) {
>  		(void)fclose(_gr_fp);
>  		_gr_fp = NULL;
> +		free(line);
> +		free(members);
> +		maxlinelength = maxgrp = 0;
>  	}
>  }

After a brief glance (ie. nothing in depth and no testing), this
however is broken. You can't deallocate that memory - it has
to hang around because getgrnam() and getgruid() return group
record with pointers to it AFTER calling endgrent().

Try running your code with /etc/malloc.conf -> AJ and using getgrent().
I fixed a similar bug in getttyent() a week ago. With these malloc
options, getttynam() always returned junk, and without the usual
side-effects when someone allocated/reused the freed block would
appear.

I'd suggest just leaving these three lines out. Subsequent calls
to gr_start() will reuse the memory anyway and add a little to
efficiency. Having the static array in spite of its limitations
avoided this.

BTW, is this a 2.2 candidate?

Regards,

David Nugent - Unique Computing Pty Ltd - Melbourne, Australia
Voice +61-3-9791-9547  Data/BBS +61-3-9792-3507  3:632/348@fidonet
davidn@freefall.org davidn@blaze.net.au http://www.blaze.net.au/~davidn/




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Mutt.19961221143650.davidn>