summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--includes.h3
-rw-r--r--session.c49
3 files changed, 17 insertions, 42 deletions
diff --git a/ChangeLog b/ChangeLog
index f916ab787..5e54a3d1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,11 @@
17 - markus@cvs.openbsd.org 2002/01/25 22:07:40 17 - markus@cvs.openbsd.org 2002/01/25 22:07:40
18 [kex.c kexdh.c kexgex.c key.c mac.c] 18 [kex.c kexdh.c kexgex.c key.c mac.c]
19 use EVP_MD_size(evp_md) and not evp_md->md_size; ok steveks@ 19 use EVP_MD_size(evp_md) and not evp_md->md_size; ok steveks@
20 - stevesk@cvs.openbsd.org 2002/01/26 16:44:22
21 [includes.h session.c]
22 revert code to add x11 localhost display authorization entry for
23 hostname/unix:d and uts.nodename/unix:d if nodename was different than
24 hostname. just add entry for unix:d instead. ok markus@
20 25
2120020130 2620020130
22 - (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@ 27 - (djm) Delay PRNG seeding until we need it in ssh-keygen, from markus@
@@ -7419,4 +7424,4 @@
7419 - Wrote replacements for strlcpy and mkdtemp 7424 - Wrote replacements for strlcpy and mkdtemp
7420 - Released 1.0pre1 7425 - Released 1.0pre1
7421 7426
7422$Id: ChangeLog,v 1.1803 2002/02/05 00:54:07 djm Exp $ 7427$Id: ChangeLog,v 1.1804 2002/02/05 01:11:02 djm Exp $
diff --git a/includes.h b/includes.h
index c992b152e..4740418a7 100644
--- a/includes.h
+++ b/includes.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: includes.h,v 1.16 2001/12/19 15:43:11 stevesk Exp $ */ 1/* $OpenBSD: includes.h,v 1.17 2002/01/26 16:44:22 stevesk Exp $ */
2 2
3/* 3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi> 4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
@@ -28,7 +28,6 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
28#include <sys/ioctl.h> 28#include <sys/ioctl.h>
29#include <sys/wait.h> 29#include <sys/wait.h>
30#include <sys/resource.h> 30#include <sys/resource.h>
31#include <sys/utsname.h>
32 31
33#include <netinet/tcp.h> 32#include <netinet/tcp.h>
34#include <arpa/inet.h> 33#include <arpa/inet.h>
diff --git a/session.c b/session.c
index a5ad077c9..268d1384e 100644
--- a/session.c
+++ b/session.c
@@ -33,7 +33,7 @@
33 */ 33 */
34 34
35#include "includes.h" 35#include "includes.h"
36RCSID("$OpenBSD: session.c,v 1.117 2001/12/28 14:50:54 markus Exp $"); 36RCSID("$OpenBSD: session.c,v 1.118 2002/01/26 16:44:22 stevesk Exp $");
37 37
38#include "ssh.h" 38#include "ssh.h"
39#include "ssh1.h" 39#include "ssh1.h"
@@ -111,7 +111,7 @@ struct Session {
111 int display_number; 111 int display_number;
112 char *display; 112 char *display;
113 int screen; 113 int screen;
114 char *auth_display[2]; 114 char *auth_display;
115 char *auth_proto; 115 char *auth_proto;
116 char *auth_data; 116 char *auth_data;
117 int single_connection; 117 int single_connection;
@@ -1390,25 +1390,16 @@ do_child(Session *s, const char *command)
1390 fprintf(stderr, 1390 fprintf(stderr,
1391 "Running %.100s add " 1391 "Running %.100s add "
1392 "%.100s %.100s %.100s\n", 1392 "%.100s %.100s %.100s\n",
1393 options.xauth_location, s->auth_display[0], 1393 options.xauth_location, s->auth_display,
1394 s->auth_proto, s->auth_data); 1394 s->auth_proto, s->auth_data);
1395 if (s->auth_display[1])
1396 fprintf(stderr,
1397 "add %.100s %.100s %.100s\n",
1398 s->auth_display[1],
1399 s->auth_proto, s->auth_data);
1400 } 1395 }
1401 snprintf(cmd, sizeof cmd, "%s -q -", 1396 snprintf(cmd, sizeof cmd, "%s -q -",
1402 options.xauth_location); 1397 options.xauth_location);
1403 f = popen(cmd, "w"); 1398 f = popen(cmd, "w");
1404 if (f) { 1399 if (f) {
1405 fprintf(f, "add %s %s %s\n", 1400 fprintf(f, "add %s %s %s\n",
1406 s->auth_display[0], s->auth_proto, 1401 s->auth_display, s->auth_proto,
1407 s->auth_data); 1402 s->auth_data);
1408 if (s->auth_display[1])
1409 fprintf(f, "add %s %s %s\n",
1410 s->auth_display[1], s->auth_proto,
1411 s->auth_data);
1412 pclose(f); 1403 pclose(f);
1413 } else { 1404 } else {
1414 fprintf(stderr, "Could not run %s\n", 1405 fprintf(stderr, "Could not run %s\n",
@@ -1907,10 +1898,8 @@ session_close(Session *s)
1907 xfree(s->term); 1898 xfree(s->term);
1908 if (s->display) 1899 if (s->display)
1909 xfree(s->display); 1900 xfree(s->display);
1910 if (s->auth_display[0]) 1901 if (s->auth_display)
1911 xfree(s->auth_display[0]); 1902 xfree(s->auth_display);
1912 if (s->auth_display[1])
1913 xfree(s->auth_display[1]);
1914 if (s->auth_data) 1903 if (s->auth_data)
1915 xfree(s->auth_data); 1904 xfree(s->auth_data);
1916 if (s->auth_proto) 1905 if (s->auth_proto)
@@ -2046,31 +2035,13 @@ session_setup_x11fwd(Session *s)
2046 * authorization entry is added with xauth(1). This will be 2035 * authorization entry is added with xauth(1). This will be
2047 * different than the DISPLAY string for localhost displays. 2036 * different than the DISPLAY string for localhost displays.
2048 */ 2037 */
2049 s->auth_display[1] = NULL;
2050 if (!options.gateway_ports) { 2038 if (!options.gateway_ports) {
2051 struct utsname uts;
2052
2053 snprintf(display, sizeof display, "localhost:%d.%d", 2039 snprintf(display, sizeof display, "localhost:%d.%d",
2054 s->display_number, s->screen); 2040 s->display_number, s->screen);
2055 snprintf(auth_display, sizeof auth_display, "%.400s/unix:%d.%d", 2041 snprintf(auth_display, sizeof auth_display, "unix:%d.%d",
2056 hostname, s->display_number, s->screen); 2042 s->display_number, s->screen);
2057 s->display = xstrdup(display); 2043 s->display = xstrdup(display);
2058 s->auth_display[0] = xstrdup(auth_display); 2044 s->auth_display = xstrdup(auth_display);
2059 /*
2060 * Xlib may use gethostbyname() or uname() hostname to
2061 * look up authorization data for FamilyLocal; see:
2062 * xc/lib/xtrans/Xtrans.c:TRANS(GetHostname)
2063 * We just add authorization entries with both
2064 * hostname and nodename if they are different.
2065 */
2066 if (uname(&uts) == -1)
2067 fatal("uname: %.100s", strerror(errno));
2068 if (strcmp(hostname, uts.nodename) != 0) {
2069 snprintf(auth_display, sizeof auth_display,
2070 "%.400s/unix:%d.%d", uts.nodename,
2071 s->display_number, s->screen);
2072 s->auth_display[1] = xstrdup(auth_display);
2073 }
2074 } else { 2045 } else {
2075#ifdef IPADDR_IN_DISPLAY 2046#ifdef IPADDR_IN_DISPLAY
2076 struct hostent *he; 2047 struct hostent *he;
@@ -2090,7 +2061,7 @@ session_setup_x11fwd(Session *s)
2090 s->display_number, s->screen); 2061 s->display_number, s->screen);
2091#endif 2062#endif
2092 s->display = xstrdup(display); 2063 s->display = xstrdup(display);
2093 s->auth_display[0] = xstrdup(display); 2064 s->auth_display = xstrdup(display);
2094 } 2065 }
2095 2066
2096 return 1; 2067 return 1;