[libvirt] [PATCH]: don't harcode buffer for getgrnam_r

Daniel Veillard veillard at redhat.com
Thu Apr 16 07:56:27 UTC 2009


On Thu, Apr 16, 2009 at 09:19:38AM +0200, Guido Günther wrote:
> Hi,
> determines the maximum needed buffersize for getgrnam_r using sysconf
> instead of hardcoding it to 1024 and increases the buffer on ERANGE.
> The latter is needed since sysconf is allowed to return -1. Furthermore
> some glibc versions seem to return a too small buffer on amd64
> (http://bugs.debian.org/520744). O.k. to apply?

  It looks a bit weird, using sysconf but 1/ allowing it to fail so
doing the 2/ 1024 value and loop on ERANGE , but well if I understand
correctly taht's forced by some glibc broken behaviour.

  My take is that the *= 2 size loop should be bounded to avoid eating
all memory on some intermediate not size related error. Can we really
get over 2^16 groups on a single node ? That sounds like a relatively
safe limit, and if it's over it then sysconf() call should have provided
the larger value in the first place.

  So I would be fine with a version with the loop bounded to 65535,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list