Bug 811673 - guestfs_last_error not set when qemu fails early during launch
Summary: guestfs_last_error not set when qemu fails early during launch
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libguestfs
Version: 6.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Richard W.M. Jones
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On: 811650
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-04-11 16:58 UTC by Richard W.M. Jones
Modified: 2012-06-20 07:01 UTC (History)
7 users (show)

Fixed In Version: libguestfs-1.16.18-2.el6
Doc Type: Bug Fix
Doc Text:
Cause: libguestfs was not setting an error during some appliance launch failures. Python bindings assume that the error string is not NULL, and would segfault if it was NULL. Consequence: Python programs could segfault when 'g.launch()' was called under some circumstances. Fix: libguestfs now sets the error string on all failure paths in launch, and the Python bindings have been fixed not to segfault. Result: Python programs won't segfault when calling 'g.launch()'
Clone Of: 811650
Environment:
Last Closed: 2012-06-20 07:01:49 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2012:0774 normal SHIPPED_LIVE Low: libguestfs security, bug fix, and enhancement update 2012-06-19 19:29:50 UTC

Description Richard W.M. Jones 2012-04-11 16:58:41 UTC
+++ This bug was initially created as a clone of Bug #811650 +++

Description of problem:

(Reported by Igor Lvovsky on RHEL 6.2 + libguestfs 1.16.15 from
preview repository)

> In [5]: guest.launch()                                                        
> python: Objects/stringobject.c:115: PyString_FromString: Assertion `str !=    
> ((void *)0)' failed.                                                          
> Aborted                                                                       

Version-Release number of selected component (if applicable):

libguestfs 1.16.15 on RHEL 6.2/6.3.

Fixed upstream:
https://github.com/libguestfs/libguestfs/commit/0f7de2279a4af0bb259c9e36fca5e5c3aa835301

There is a regression test which segfaults without the above
patch here:
https://github.com/libguestfs/libguestfs/commit/b6dd7e72500cbfa4e13379b9f2b1d0ccfa7ebec3

Comment 2 Qixiang Wan 2012-04-17 08:04:25 UTC
Verified with libguestfs-1.16.18-2.el6.x86_64.

Tested with the regression case "python/t/rhbz811650.py":

Before fix (libguestfs-1.16.15-1.el6.x86_64):

# python ./rhbz811650.py 
python: Objects/stringobject.c:115: PyString_FromString: Assertion `str != ((void *)0)' failed.
Aborted (core dumped)

After fix:

# python ./rhbz811650.py 
#

Comment 3 Richard W.M. Jones 2012-04-26 13:50:05 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause:
libguestfs was not setting an error during some appliance launch failures.  Python bindings assume that the error string is not NULL, and would segfault if it was NULL.

Consequence:
Python programs could segfault when 'g.launch()' was called under some circumstances.

Fix:
libguestfs now sets the error string on all failure paths in launch, and the Python bindings have been fixed not to segfault.

Result:
Python programs won't segfault when calling 'g.launch()'

Comment 5 errata-xmlrpc 2012-06-20 07:01:49 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2012-0774.html


Note You need to log in before you can comment on or make changes to this bug.