delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/08/08/18:47:10

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
Message-ID: <911C684A29ACD311921800508B7293BA010A8BB0@cnmail>
From: Mark Bradshaw <bradshaw AT staff DOT crosswalk DOT com>
To: "'Corinna Vinschen'" <cygwin AT cygwin DOT com>
Cc: Mark Bradshaw <bradshaw AT staff DOT crosswalk DOT com>
Subject: OpenSSH patches dealing with incorrect pathing
Date: Wed, 8 Aug 2001 18:46:53 -0400
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)

Corinna,
   I've found a few more pathing issues that I'd like to get patched in
OpenSSH.  I apologize for missing these when we did the last rounds.  I knew
the error existed.  I had just worked around it for so long that I forgot
about it.  <sigh>

Following are two patches that correct bad // pathing problems, like were
seen in the sftp apps.  They aren't (IMHO) as big a deal as the sftp
patches, since they only show up when the user either has no entry in the
passwd file, or has set their home directory to /.  When they do, however,
this causes ssh to try to put known_hosts files in //.ssh, which doesn't
work for some odd reason.  <grin>

As far as I can tell only ssh.c and tildexpand.c need to be patched.  Ssh.c
is patched where it tries to create the .ssh directory, and tildexpand.c is
patched where it expands the user's home directory (incorrectly).

Mark

================================================
diff for ssh.c

--- /usr/src/openssh-2.9p2-3/ssh.c	Tue Apr 17 14:14:35 2001
+++ ssh-new.c	Wed Aug  8 18:36:18 2001
@@ -680,7 +680,7 @@ main(int ac, char **av)
 	 * Now that we are back to our own permissions, create ~/.ssh
 	 * directory if it doesn\'t already exist.
 	 */
-	snprintf(buf, sizeof buf, "%.100s/%.100s", pw->pw_dir,
_PATH_SSH_USER_DIR);
+	snprintf(buf, sizeof buf, "%.100s%s%.100s", pw->pw_dir,
strcmp(pw->pw_dir, "/") ? "/" : "", _PATH_SSH_USER_DIR);
 	if (stat(buf, &st) < 0)
 		if (mkdir(buf, 0700) < 0)
 			error("Could not create directory '%.200s'.", buf);

=================================================
diff for tildexpand.c

--- /usr/src/openssh-2.9p2-3/tildexpand.c	Thu Feb  8 21:11:25 2001
+++ tildexpand-new.c	Wed Aug  8 18:37:45 2001
@@ -67,6 +67,6 @@ tilde_expand_filename(const char *filena
 	if (len > MAXPATHLEN)
 		fatal("Home directory too long (%d > %d", len-1,
MAXPATHLEN-1);
 	expanded = xmalloc(len);
-	snprintf(expanded, len, "%s/%s", pw->pw_dir, cp + 1);
+	snprintf(expanded, len, "%s%s%s", pw->pw_dir, strcmp(pw->pw_dir,
"/") ? "/" : "", cp + 1);
 	return expanded;
 }

==================================================

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019