- stevesk@cvs.openbsd.org 2002/01/27 18:08:17
[ssh.c] handle simple case to identify FamilyLocal display; ok markus@
This commit is contained in:
parent
95c249ff47
commit
35b13d633b
|
@ -25,6 +25,9 @@
|
||||||
- stevesk@cvs.openbsd.org 2002/01/27 14:57:46
|
- stevesk@cvs.openbsd.org 2002/01/27 14:57:46
|
||||||
[channels.c servconf.c servconf.h session.c sshd.8 sshd_config]
|
[channels.c servconf.c servconf.h session.c sshd.8 sshd_config]
|
||||||
add X11UseLocalhost; ok markus@
|
add X11UseLocalhost; ok markus@
|
||||||
|
- stevesk@cvs.openbsd.org 2002/01/27 18:08:17
|
||||||
|
[ssh.c]
|
||||||
|
handle simple case to identify FamilyLocal display; ok markus@
|
||||||
|
|
||||||
20020130
|
20020130
|
||||||
- (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@
|
- (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@
|
||||||
|
@ -7427,4 +7430,4 @@
|
||||||
- Wrote replacements for strlcpy and mkdtemp
|
- Wrote replacements for strlcpy and mkdtemp
|
||||||
- Released 1.0pre1
|
- Released 1.0pre1
|
||||||
|
|
||||||
$Id: ChangeLog,v 1.1805 2002/02/05 01:11:34 djm Exp $
|
$Id: ChangeLog,v 1.1806 2002/02/05 01:12:09 djm Exp $
|
||||||
|
|
21
ssh.c
21
ssh.c
|
@ -39,7 +39,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: ssh.c,v 1.158 2002/01/16 13:17:51 markus Exp $");
|
RCSID("$OpenBSD: ssh.c,v 1.159 2002/01/27 18:08:17 stevesk Exp $");
|
||||||
|
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/err.h>
|
#include <openssl/err.h>
|
||||||
|
@ -793,14 +793,27 @@ x11_get_proto(char **_proto, char **_data)
|
||||||
static char proto[512], data[512];
|
static char proto[512], data[512];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
int got_data = 0, i;
|
int got_data = 0, i;
|
||||||
|
char *display;
|
||||||
|
|
||||||
*_proto = proto;
|
*_proto = proto;
|
||||||
*_data = data;
|
*_data = data;
|
||||||
proto[0] = data[0] = '\0';
|
proto[0] = data[0] = '\0';
|
||||||
if (options.xauth_location) {
|
if (options.xauth_location && (display = getenv("DISPLAY"))) {
|
||||||
/* Try to get Xauthority information for the display. */
|
/* Try to get Xauthority information for the display. */
|
||||||
snprintf(line, sizeof line, "%.100s list %.200s 2>" _PATH_DEVNULL,
|
if (strncmp(display, "localhost:", 10) == 0)
|
||||||
options.xauth_location, getenv("DISPLAY"));
|
/*
|
||||||
|
* Handle FamilyLocal case where $DISPLAY does
|
||||||
|
* not match an authorization entry. For this we
|
||||||
|
* just try "xauth list unix:displaynum.screennum".
|
||||||
|
* XXX: "localhost" match to determine FamilyLocal
|
||||||
|
* is not perfect.
|
||||||
|
*/
|
||||||
|
snprintf(line, sizeof line, "%.100s list unix:%s 2>"
|
||||||
|
_PATH_DEVNULL, options.xauth_location, display+10);
|
||||||
|
else
|
||||||
|
snprintf(line, sizeof line, "%.100s list %.200s 2>"
|
||||||
|
_PATH_DEVNULL, options.xauth_location, display);
|
||||||
|
debug2("x11_get_proto %s", line);
|
||||||
f = popen(line, "r");
|
f = popen(line, "r");
|
||||||
if (f && fgets(line, sizeof(line), f) &&
|
if (f && fgets(line, sizeof(line), f) &&
|
||||||
sscanf(line, "%*s %511s %511s", proto, data) == 2)
|
sscanf(line, "%*s %511s %511s", proto, data) == 2)
|
||||||
|
|
Loading…
Reference in New Issue