=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/session.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- src/usr.bin/ssh/session.c 2000/05/30 17:23:37 1.15 +++ src/usr.bin/ssh/session.c 2000/05/31 06:36:40 1.16 @@ -8,7 +8,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: session.c,v 1.15 2000/05/30 17:23:37 markus Exp $"); +RCSID("$OpenBSD: session.c,v 1.16 2000/05/31 06:36:40 markus Exp $"); #include "xmalloc.h" #include "ssh.h" @@ -248,7 +248,10 @@ packet_send_debug("X11 forwarding disabled in server configuration file."); break; } -#ifdef XAUTH_PATH + if (!options.xauth_location) { + packet_send_debug("No xauth program; cannot forward with spoofing."); + break; + } if (no_x11_forwarding_flag) { packet_send_debug("X11 forwarding not permitted for this authentication."); break; @@ -289,10 +292,6 @@ fatal_add_cleanup(xauthfile_cleanup_proc, NULL); success = 1; break; -#else /* XAUTH_PATH */ - packet_send_debug("No xauth program; cannot forward with spoofing."); - break; -#endif /* XAUTH_PATH */ case SSH_CMSG_AGENT_REQUEST_FORWARDING: if (no_agent_forwarding_flag || compat13) { @@ -740,6 +739,7 @@ { const char *shell, *cp = NULL; char buf[256]; + char cmd[1024]; FILE *f; unsigned int envsize, i; char **env; @@ -948,23 +948,24 @@ pclose(f); } else fprintf(stderr, "Could not run %s\n", SSH_SYSTEM_RC); - } -#ifdef XAUTH_PATH - else { + } else if (options.xauth_location != NULL) { /* Add authority data to .Xauthority if appropriate. */ if (auth_proto != NULL && auth_data != NULL) { char *screen = strchr(display, ':'); if (debug_flag) { fprintf(stderr, "Running %.100s add %.100s %.100s %.100s\n", - XAUTH_PATH, display, auth_proto, auth_data); + options.xauth_location, display, + auth_proto, auth_data); if (screen != NULL) fprintf(stderr, "Adding %.*s/unix%s %s %s\n", screen-display, display, screen, auth_proto, auth_data); } - f = popen(XAUTH_PATH " -q -", "w"); + snprintf(cmd, sizeof cmd, "%s -q -", + options.xauth_location); + f = popen(cmd, "w"); if (f) { fprintf(f, "add %s %s %s\n", display, auth_proto, auth_data); @@ -973,13 +974,12 @@ screen-display, display, screen, auth_proto, auth_data); pclose(f); - } else - fprintf(stderr, "Could not run %s -q -\n", - XAUTH_PATH); + } else { + fprintf(stderr, "Could not run %s\n", + cmd); + } } } -#endif /* XAUTH_PATH */ - /* Get the last component of the shell name. */ cp = strrchr(shell, '/'); if (cp)