From cb68cd21e49d3bbbfcae8b53c69a5e56dd7b1a7f Mon Sep 17 00:00:00 2001 From: Marius Gavrilescu Date: Thu, 11 Jul 2013 10:59:00 +0300 Subject: [PATCH] Fix segfault --- ...-assume-environment-contains-display.patch | 27 +++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 28 insertions(+) create mode 100644 debian/patches/do-not-assume-environment-contains-display.patch diff --git a/debian/patches/do-not-assume-environment-contains-display.patch b/debian/patches/do-not-assume-environment-contains-display.patch new file mode 100644 index 0000000..904538b --- /dev/null +++ b/debian/patches/do-not-assume-environment-contains-display.patch @@ -0,0 +1,27 @@ +Description: Do not assume that the environment contains a DISPLAY variable + Previously, the code unconditionally tried to copy it to a variable. + This segfaults when that variable does not exist. +Author: Marius Gavrilescu +Bug-Debian: http://bugs.debian.org/716500 +Forwarded: https://github.com/jim-rees/xfishtank/issues/5 +Bug: https://github.com/jim-rees/xfishtank/issues/5 +Last-Update: 2013-07-11 + +--- xfishtank-2.3.orig/xfish.c ++++ xfishtank-2.3/xfish.c +@@ -171,12 +171,14 @@ int argc; + char **argv; + { + int c, i; ++ const char *display = getenv("DISPLAY"); + extern int optind; + extern char *optarg; + extern double atof(); + + pname = argv[0]; +- strncpy(sname, getenv("DISPLAY"), sizeof(sname) - 1); ++ if(display != NULL) ++ strncpy(sname, display, sizeof(sname) - 1); + strcpy(cname, "MediumAquamarine"); + + while ((c = getopt(argc, argv, "dDob:C:c:p:m:f:i:r:s")) != EOF) { diff --git a/debian/patches/series b/debian/patches/series index b25ee7f..eb8698d 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1,3 @@ fix-manpage.patch remove-p-argument-from-manpage.patch +do-not-assume-environment-contains-display.patch -- 2.39.2