Hi again,

Some more testing from Unit 193 (CC'd) and I shows that the commit
fixing this is actually
http://git.savannah.nongnu.org/cgit/icoutils.git/commit/?id=3c990fcc754c81a02ab5981d59b01025f1596b2c

The attached patch imports this commit as a patch. (Hopefully this can
be fixed in time for stretch!)

Best,
James

On 30/05/17 10:31 PM, James Lu wrote:
> Control: affects 860220 gnome-exe-thumbnailer
> Control: tag 860220 + fixed-upstream
> 
> Hi,
> 
> According to
> http://git.savannah.nongnu.org/cgit/icoutils.git/commit/?id=050fbec35c3ab39f71b4e814506692e2006e950d,
> this bug is fixed in icoutils 0.31.3. When I build a package for this
> version and install it locally, I can confirm that wrestool is fixed.
> 
> Before (0.31.2-1):
> $ wrestool -l PatchCleaner_1.4.2.0.exe
> wrestool: PatchCleaner_1.4.2.0.exe: premature end
> 
> After (0.31.3-0utopia1, local build):
> $ wrestool -l PatchCleaner_1.4.2.0.exe
> --type=3 --name=1 --language=1033 [type=icon offset=0x274a0 size=744]
> --type=3 --name=2 --language=1033 [type=icon offset=0x27788 size=296]
> --type=5 --name=500 --language=1033 [type=dialog offset=0x278d8 size=184]
> --type=6 --name=1 --language=1033 [type=string offset=0x27990 size=148]
> --type=6 --name=5 --language=1033 [type=string offset=0x27a28 size=52]
> --type=14 --name=1 --language=1033 [type=group_icon offset=0x278b0 size=34]
> 
> However, there have been numerous commits between 0.31.2 and 0.31.3[1],
> and it's not clear to me which commit actually unbricks wrestool. At
> this point, it's probably too late to ship an entirely new version into
> Stretch.
> 
> This bug impacts gnome-exe-thumbnailer (a .exe thumbnailer for
> GNOME-like systems), because wrestool failing causes it to fall back to
> a relatively useless generic icon. This in turn erodes away at the
> thumbnailer's whole purpose, and I'm undecided so far whether that
> should be an RC bug on g-e-t's side (I am the maintainer).
> 
> Best,
> James
> 
> [1]: http://git.savannah.nongnu.org/cgit/icoutils.git/log
> 
From 8c6c39e351fc97b49a922905a169f0607ebc862c Mon Sep 17 00:00:00 2001
From: James Lu <ja...@overdrivenetworks.com>
Date: Tue, 30 May 2017 23:21:07 -0700
Subject: [PATCH] Add patch fix-wrestool.patch to fix wrestool not extracting
 icons (0.31.2 regression)

Bug: https://bugs.debian.org/860220
---
 debian/patches/fix-wrestool.patch | 38 ++++++++++++++++++++++++++++++++++++++
 debian/patches/series             |  1 +
 2 files changed, 39 insertions(+)
 create mode 100644 debian/patches/fix-wrestool.patch
 create mode 100644 debian/patches/series

diff --git a/debian/patches/fix-wrestool.patch b/debian/patches/fix-wrestool.patch
new file mode 100644
index 0000000..4d2079b
--- /dev/null
+++ b/debian/patches/fix-wrestool.patch
@@ -0,0 +1,38 @@
+From: Frank Richter <frank.rich...@gmail.com>
+Last-Update: 2017-05-30
+Origin: upstream, http://git.savannah.nongnu.org/cgit/icoutils.git/commit/?id=3c990fcc754c81a02ab5981d59b01025f1596b2c
+Bug-Debian: https://bugs.debian.org/860220
+Subject: Fix wrestool and icoutils not extracting icons
+ The original commit message is as follows:
+ .
+ Revert "Add additional sanity checks to do_resource(). Found by Jerzy Kramarz <op7...@gmail.com>."
+ .
+ That "sanity check" rather broke everything.
+ Also, I couldn't reproduce the issue it this change was intended to catch from the files I have
+ any more, so it's probably not needed anyway.
+
+---
+ wrestool/restable.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/wrestool/restable.c b/wrestool/restable.c
+index fd0ba49..f14dddf 100644
+--- a/wrestool/restable.c
++++ b/wrestool/restable.c
+@@ -87,13 +87,9 @@ do_resources_recurs (WinLibrary *fi, WinResource *base, WinResource *type_wr,
+ 	wr = list_resources (fi, base, &rescnt);
+ 	if (wr == NULL)
+ 		return;
+-	if (!check_offset(fi->memory, fi->total_size, fi->name, &wr[0], sizeof(WinResource)))
+-		return;
+ 
+ 	/* process each resource listed */
+ 	for (c = 0 ; c < rescnt ; c++) {
+-		if (!check_offset(fi->memory, fi->total_size, fi->name, &wr[c], sizeof(WinResource)))
+-			break;
+ 		/* (over)write the corresponding WinResource holder with the current */
+ 		memcpy(WINRESOURCE_BY_LEVEL(wr[c].level), wr+c, sizeof(WinResource));
+ 
+-- 
+cgit v1.0-41-gc330
+
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..a683131
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+fix-wrestool.patch
-- 
2.11.0

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to