On 11/12/2010 10:47 AM, Stefan Berger wrote:
>> - if (list)
>> - fclose(list);
>> - else
>> - VIR_FORCE_CLOSE(fd);
>> + VIR_FORCE_FCLOSE(list);
>> + VIR_FORCE_CLOSE(fd);
> You just introduced a double close. list was created via fdopen(fd),
:-( In that case, what about wrapping fdopen with FDOPEN and set fd to
-1 if the function succeeds, i.e., returns != NULL?
> which effectively consumes fd. Maybe we need to add VIR_FDOPEN which
> auto-sets an fdopen'd fd to -1 on success? Maybe not, but then you need
> to adjust the fdopen() call site to invalidate fd so we don't re-close
> it.
Sounds like we're in violent agreement. :)
VIR_FDOPEN sounds good to me; and only 5 places that call fdopen, so you
might as well fold it into your next spin of this patch.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org