Bug#859983: unblock: freedink/108.4+dfsg-2
Package: release.debian.org
User: release.debian.org@packages.debian.org
Usertags: unblock
Severity: normal
Please unblock package freedink
The upload applies a fix from upstream for a segfault due to an
off-by-one overflow. The latest rebuild makes the game segfault on
savegame reload, making the game mostly unusable.
Also the upload fixes binNMU support which is currently harmed by a
/usr/share/doc symlink from the "all" meta-package to the "arch" main
package.
diff -Nru freedink-108.4+dfsg/debian/changelog freedink-108.4+dfsg/debian/changelog
--- freedink-108.4+dfsg/debian/changelog 2017-01-22 21:06:51.000000000 +0100
+++ freedink-108.4+dfsg/debian/changelog 2017-04-09 23:10:58.000000000 +0200
@@ -1,3 +1,10 @@
+freedink (108.4+dfsg-2) unstable; urgency=medium
+
+ * Don't symlink /usr/share/doc/freedink to support binNMU
+ * Fix segfault when loading game and exiting editor.
+
+ -- Sylvain Beucler <beuc@debian.org> Sun, 09 Apr 2017 23:10:58 +0200
+
freedink (108.4+dfsg-1) unstable; urgency=medium
* Stub out share/freedink/LiberationSans-Regular.ttf (Closes: #851110)
diff -Nru freedink-108.4+dfsg/debian/freedink.maintscript freedink-108.4+dfsg/debian/freedink.maintscript
--- freedink-108.4+dfsg/debian/freedink.maintscript 1970-01-01 01:00:00.000000000 +0100
+++ freedink-108.4+dfsg/debian/freedink.maintscript 2017-04-09 23:10:58.000000000 +0200
@@ -0,0 +1,2 @@
+symlink_to_dir /usr/share/doc/freedink freedink-engine 108.4+dfsg-2~~
+symlink_to_dir /usr/share/doc/freedink-engine-dbg freedink-engine 108.4+dfsg-2~~
diff -Nru freedink-108.4+dfsg/debian/patches/segfault.patch freedink-108.4+dfsg/debian/patches/segfault.patch
--- freedink-108.4+dfsg/debian/patches/segfault.patch 1970-01-01 01:00:00.000000000 +0100
+++ freedink-108.4+dfsg/debian/patches/segfault.patch 2017-04-09 23:01:18.000000000 +0200
@@ -0,0 +1,36 @@
+commit 2516bb7c16066d432bf287567f30d533cd067337
+Author: Sylvain Beucler <beuc@beuc.net>
+Date: Wed Jun 18 23:20:23 2014 +0200
+
+ Don't access callback[MAX_CALLBACKS] (overflow)
+
+diff --git a/src/dinkc.c b/src/dinkc.c
+index 74c1e6d..fdf1f19 100644
+--- a/src/dinkc.c
++++ b/src/dinkc.c
+@@ -64,7 +64,6 @@ struct call_back
+ unsigned long timer;
+ };
+ static struct call_back callback[MAX_CALLBACKS];
+-/* TODO: Used 1->100 in the game, should it be MAX_CALLBACKS+1 ? */
+
+ /* DinkC script buffer */
+ static char *rbuf[MAX_SCRIPTS]; //pointers to buffers we may need
+@@ -779,7 +778,7 @@ int add_callback(char name[20], int n1, int n2, int script)
+
+ void kill_callback(int cb)
+ {
+- if (cb >= 0 && cb <= 99)
++ if (cb >= 0 && cb < MAX_CALLBACKS)
+ callback[cb].active = /*false*/0;
+ }
+
+@@ -870,7 +869,7 @@ void kill_all_scripts_for_real(void)
+ kill_script(k);
+ }
+
+- for (k = 1; k <= MAX_CALLBACKS; k++)
++ for (k = 1; k < MAX_CALLBACKS; k++)
+ {
+ callback[k].active = 0;
+ }
diff -Nru freedink-108.4+dfsg/debian/patches/series freedink-108.4+dfsg/debian/patches/series
--- freedink-108.4+dfsg/debian/patches/series 1970-01-01 01:00:00.000000000 +0100
+++ freedink-108.4+dfsg/debian/patches/series 2017-04-09 23:08:56.000000000 +0200
@@ -0,0 +1 @@
+segfault.patch
diff -Nru freedink-108.4+dfsg/debian/rules freedink-108.4+dfsg/debian/rules
--- freedink-108.4+dfsg/debian/rules 2014-10-17 17:15:09.000000000 +0200
+++ freedink-108.4+dfsg/debian/rules 2017-04-09 23:10:58.000000000 +0200
@@ -46,9 +46,5 @@
# Install XPM icon
cp -a src/freedink_xpm.c debian/freedink-engine/usr/share/pixmaps/freedink.xpm
-override_dh_installdocs:
- # --link-doc requires debhelper 7.4.2
- dh_installdocs --link-doc=freedink-engine
-
override_dh_installchangelogs:
dh_installchangelogs ChangeLog
unblock freedink/108.4+dfsg-2
-- System Information:
Debian Release: 9.0
APT prefers testing
APT policy: (500, 'testing'), (50, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Reply to: