Bug 977894 - libgsf fails to parse valid MSI files (patch available)
Summary: libgsf fails to parse valid MSI files (patch available)
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libgsf
Version: 6.4
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Caolan McNamara
QA Contact: Desktop QE
Depends On:
TreeView+ depends on / blocked
Reported: 2013-06-25 14:26 UTC by Laszlo Ersek
Modified: 2013-06-26 10:53 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2013-06-26 10:53:56 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
GNOME Bugzilla 689706 0 None None None Never

Description Laszlo Ersek 2013-06-25 14:26:07 UTC
*** Description of problem:
In order to review and test the qemu series at <http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg00959.html>, I need to run "msiextract" on a Windows installer file.

I installed gcab-0.4 and msitools-0.92 from source. When I run

  msiextract vsssdk.msi

I get

  ** (msiextract:30909): CRITICAL **: libmsi_istream_new: assertion `dup'

  (msiextract:30909): gcab-CRITICAL **: gcab_cabinet_load: assertion
  `G_IS_INPUT_STREAM (stream)' failed

Turns out this is a known problem in libgsf (a dependency of msitools); an unshipped upstream patch is available from Paolo Bonzini. See <https://bugzilla.gnome.org/show_bug.cgi?id=689706>.

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

*** How reproducible:

*** Steps to Reproduce:
1. Download "setup.exe" from <http://www.microsoft.com/en-us/download/details.aspx?id=23490>.
2. Extract "vsssdk.msi" from "setup.exe" using the script in <http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg00966.html>.
3. Try to extract "vsssdk.msi" with msitools-0.92, built against libgsf-1.14.15-5.el6.

*** Actual results:
Assertion failure.

*** Expected results:
Extraction should work.

*** Additional info:
The brew build <https://brewweb.devel.redhat.com/buildinfo?buildID=252310> seems to backport this patch. However it only references a gnome BZ, not a Red Hat BZ.

The fix in that build has also not been pushed to dist-git.

Comment 1 Paolo Bonzini 2013-06-25 14:45:12 UTC
The patch is not unshipped, just not backported to RHEL.

Comment 2 Laszlo Ersek 2013-06-25 14:51:10 UTC
Is it available in a tarball release? I was working from <https://wiki.gnome.org/action/recall/msitools?action=recall&rev=6>.

Comment 4 Paolo Bonzini 2013-06-25 15:29:18 UTC
Yes, it is in 1.14.26 (see https://git.gnome.org/browse/libgsf/log/?id=LIBGSF_1_14_26 close to the bottom).

Comment 5 Laszlo Ersek 2013-06-25 16:30:09 UTC
Great, thanks!

Since the broken out patch didn't fix my problem, maybe this BZ should concern upgrading libgsf to 1.14.26, rather than backporting one patch.

OTOH 1.14.26 requires a higher glib2 than what's available in RHEL-6 (as you were kind enough to point out and patch the dependency as well, highly appreciated!), so any such upgrade will probably need your patch too <http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg04498.html>.

I'll try to test it as soon as I can. Thanks.

Comment 6 Laszlo Ersek 2013-06-26 10:53:56 UTC
Turns out (see thread linked above) that updating libgsf is insufficient, msiextract (or the updated libgsf itself) would further depend on a very recent glib2 release (2.33.1). That's probably too intrusive for RHEL-6. OTOH upgrading just libgsf is useless, so closing this as WONTFIX. Thanks.

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