forked from pool/openssh
50 lines
1.5 KiB
Diff
50 lines
1.5 KiB
Diff
|
# HG changeset patch
|
||
|
# Parent 7cd948c83939479d1ba88a3161991cb561306f3f
|
||
|
# 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.7p1/loginrec.c b/openssh-7.7p1/loginrec.c
|
||
|
--- openssh-7.7p1/loginrec.c
|
||
|
+++ openssh-7.7p1/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 */
|