File openssh-7.2p2-pts_names_formatting.patch of Package openssh

# HG changeset patch
# Parent  787bc0aab11e5a7b6510c8dbf771958743ca25b0
# use same lines naming as utempter (prevents problems with using different
# formats in ?tmp? files)
# --used to be called '-pts'

diff --git a/openssh-7.2p2/loginrec.c b/openssh-7.2p2/loginrec.c
--- a/openssh-7.2p2/loginrec.c
+++ b/openssh-7.2p2/loginrec.c
@@ -541,17 +541,17 @@ getlast_entry(struct logininfo *li)
 /*
  * 'line' string utility functions
  *
  * These functions process the 'line' string into one of three forms:
  *
  * 1. The full filename (including '/dev')
  * 2. The stripped name (excluding '/dev')
  * 3. The abbreviated name (e.g. /dev/ttyp00 -> yp00
- *                               /dev/pts/1  -> ts/1 )
+ *                               /dev/pts/1  -> /1 )
  *
  * Form 3 is used on some systems to identify a .tmp.? entry when
  * attempting to remove it. Typically both addition and removal is
  * performed by one application - say, sshd - so as long as the choice
  * uniquely identifies a terminal it's ok.
  */
 
 
@@ -602,16 +602,20 @@ line_abbrevname(char *dst, const char *s
 	/* Always skip prefix if present */
 	if (strncmp(src, "/dev/", 5) == 0)
 		src += 5;
 
 #ifdef WITH_ABBREV_NO_TTY
 	if (strncmp(src, "tty", 3) == 0)
 		src += 3;
 #endif
+	if (strncmp(src, "pts/", 4) == 0) {
+		src += 3;
+		if (strlen(src) > 4) src++;
+	}
 
 	len = strlen(src);
 
 	if (len > 0) {
 		if (((int)len - dstsize) > 0)
 			src +=  ((int)len - dstsize);
 
 		/* note: _don't_ change this to strlcpy */
openSUSE Build Service is sponsored by