[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xterm: Changes to 'debian-unstable'



 debian/changelog                  |    8 ++++++
 debian/patches/905_passedPty.diff |   47 ++++++++++++++++++++++++++++++++++++++
 debian/patches/series             |    1 
 3 files changed, 56 insertions(+)

New commits:
commit 663c53556da5f6615d499402000bb9bfc1fc46f5
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Sun Mar 1 11:45:34 2015 +0100

    Upload to unstable

diff --git a/debian/changelog b/debian/changelog
index 72f692a..b29201d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,10 +1,10 @@
-xterm (312-2) UNRELEASED; urgency=medium
+xterm (312-2) unstable; urgency=medium
 
   * Cherry-pick a patch from xterm 314: change passedPty[] to an
     allocated string to ensure it is long enough for the -S option
     value (Closes: #779397).
 
- -- Sven Joachim <svenjoac@gmx.de>  Sun, 01 Mar 2015 11:34:52 +0100
+ -- Sven Joachim <svenjoac@gmx.de>  Sun, 01 Mar 2015 11:45:01 +0100
 
 xterm (312-1) unstable; urgency=medium
 

commit 976a28a84cb9be75001b0606313e45e0118a27f7
Author: Sven Joachim <svenjoac@gmx.de>
Date:   Sun Mar 1 11:43:13 2015 +0100

    Fix buffer overflow in the -S option
    
    Change passedPty[] to an allocated string to ensure it is long enough
    for the -S option value.

diff --git a/debian/changelog b/debian/changelog
index 6b5ba0c..72f692a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+xterm (312-2) UNRELEASED; urgency=medium
+
+  * Cherry-pick a patch from xterm 314: change passedPty[] to an
+    allocated string to ensure it is long enough for the -S option
+    value (Closes: #779397).
+
+ -- Sven Joachim <svenjoac@gmx.de>  Sun, 01 Mar 2015 11:34:52 +0100
+
 xterm (312-1) unstable; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/905_passedPty.diff b/debian/patches/905_passedPty.diff
new file mode 100644
index 0000000..93765eb
--- /dev/null
+++ b/debian/patches/905_passedPty.diff
@@ -0,0 +1,47 @@
+Description: Fix buffer overflow in the -S option
+ Change passedPty[] to an allocated string to ensure it is long enough for
+ the -S option value.
+Author: Thomas Dickey <dickey@his.com>
+Bug-Debian: https://bugs.debian.org/779397
+
+---
+ main.c |    8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+--- a/main.c
++++ b/main.c
+@@ -779,7 +779,8 @@ static char etc_wtmp[] = WTMP_FILENAME;
+ static char bin_login[] = LOGIN_FILENAME;
+ #endif
+ 
+-static char passedPty[PTYCHARLEN + 1];	/* name if pty if slave */
++static char noPassedPty[2];
++static char *passedPty = noPassedPty;	/* name if pty if slave */
+ 
+ #if defined(TIOCCONS) || defined(SRIOCSREDIR)
+ static int Console;
+@@ -1760,7 +1761,8 @@ ParseSccn(char *option)
+     char *leaf = x_basename(option);
+     Bool code = False;
+ 
+-    if (leaf != option) {
++    passedPty = x_strdup(option);
++    if (leaf != option) {
+ 	if (leaf - option > 0
+ 	    && isdigit(CharOf(*leaf))
+ 	    && sscanf(leaf, "%d", &am_slave) == 1) {
+@@ -1771,13 +1773,13 @@ ParseSccn(char *option)
+ 	     * the /dev/pts/XXX value, but since we do not need to reopen it,
+ 	     * it is useful mainly for display in a "ps -ef".
+ 	     */
+-	    strncpy(passedPty, option, len);
+ 	    passedPty[len] = 0;
+ 	    code = True;
+ 	}
+     } else {
+ 	code = (sscanf(option, "%c%c%d",
+ 		       passedPty, passedPty + 1, &am_slave) == 3);
++	passedPty[2] = '\0';
+     }
+     TRACE(("ParseSccn(%s) = '%s' %d (%s)\n", option,
+ 	   passedPty, am_slave, code ? "OK" : "ERR"));
diff --git a/debian/patches/series b/debian/patches/series
index 0a584d1..c29fff3 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +1,4 @@
 900_debian_xterm.diff
 902_windowops.diff
 904_fontops.diff
+905_passedPty.diff


Reply to: