Package: autocutsel
Version: 0.9.0-2
Severity: important
Tags: patch

If I run "cutsel cut" when the cut buffer is empty, it fails with
segmentation fault. Looks like XFetchBuffer() returns NULL pointer
in this case, and we are trying to dereference by printing the
value. Checking the length for non-zero value before printing
is one way to avoid that, implemented by attached patch.

On a related (minor) note, cutsel's man page does not mention the
"targets" and "length" subcommands, which are implemented by the
binary.

-- System Information:
Debian Release: jessie/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.11-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages autocutsel depends on:
ii  libc6     2.17-93
ii  libice6   2:1.0.8-2
ii  libsm6    2:1.2.1-2
ii  libx11-6  2:1.6.2-1
ii  libxaw7   2:1.0.11-1
ii  libxext6  2:1.3.2-1
ii  libxmu6   2:1.1.1-1
ii  libxt6    1:1.1.4-1

autocutsel recommends no packages.

autocutsel suggests no packages.

-- no debconf information
diff -aur a/cutsel.c b/cutsel.c
--- a/cutsel.c	2006-11-05 09:25:50.000000000 +0000
+++ b/cutsel.c	2013-10-26 17:34:57.383765419 +0100
@@ -213,7 +213,8 @@
       XtAppAddTimeOut(context, 10, Exit, 0);
     } else {
       options.value = XFetchBuffer(dpy, &options.length, buffer);
-      printf("%s\n", options.value);
+      if (options.length)
+        printf("%s\n", options.value);
       exit(0);
     }
   } else if (strcmp(argv[1], "sel") == 0) {

Reply via email to