On Mon, Aug 23, 2010 at 12:59:16PM +0200, Soren Hansen wrote: > On 23-08-2010 12:42, Daniel P. Berrange wrote: > >> + /* > >> + * At the moment, the only thing that populates keepfd is > >> + * umlBuildCommandLineChr. We want to close every fd it opens. > >> + */ > >> + openmax = sysconf (_SC_OPEN_MAX); > >> + for (i = 0; i < openmax; i++) > >> + if (FD_ISSET(i, &keepfd)) > >> + close(i); > >> + > > Unfortunately fdset is one of those limited types that can't > > represent all possible values. So you need to use FD_SETSIZE > > instead of _SC_OPEN_MAX here > > Ok, I'll fix that up, but just so that I understand: Your concern is > that there might be an open file descriptor between FD_SETSIZE and > _SC_OPEN_MAX that we don't want to close? No, its that if you try to run FD_ISSET for i > FD_SETSIZE, you'll likely have an array overflow / out of bounds, so just stop at FD_SETSIZE. When we switch to the new virCommandPtr apis we'll remove this limitation. Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list