*/
#include "includes.h"
-RCSID("$OpenBSD: tildexpand.c,v 1.8 2000/09/07 20:27:55 deraadt Exp $");
+RCSID("$OpenBSD: tildexpand.c,v 1.13 2002/06/23 03:25:50 deraadt Exp $");
#include "xmalloc.h"
-#include "ssh.h"
+#include "log.h"
+#include "tildexpand.h"
/*
* Expands tildes in the file name. Returns data allocated by xmalloc.
tilde_expand_filename(const char *filename, uid_t my_uid)
{
const char *cp;
- unsigned int userlen;
+ u_int userlen;
char *expanded;
struct passwd *pw;
char user[100];
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;
}