[libvirt] [PATCH] Fix virFileReadLimFD/virFileReadAll to handle EINTR

Daniel P. Berrange berrange at redhat.com
Tue Oct 13 09:33:56 UTC 2009


On Tue, Oct 13, 2009 at 10:23:27AM +0100, Mark McLoughlin wrote:
> On Mon, 2009-10-12 at 20:37 +0100, Daniel P. Berrange wrote:
> > The fread_file_lim() function uses fread() but never handles
> > EINTR results, causing unexpected failures when reading QEMU
> > help arg info. It was unneccessarily using FILE * instead
> > of plain UNIX file handles, which prevented use of saferead()
> 
> Looks like the same thing Charles Duffy reported here:
> 
>   http://www.redhat.com/archives/libvir-list/2009-September/msg00662.html

Yes, that's exactly the bug. Of course you would never actually hit this
were it not for the other bug I just posted a patch for - that caused the
decompressor program to SEGV, and the SIGCHILD from that crash is what
causes this function to be interrupted :-)

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list