=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/misc.c,v retrieving revision 1.4.2.1 retrieving revision 1.4.2.2 diff -u -r1.4.2.1 -r1.4.2.2 --- src/usr.bin/ssh/misc.c 2001/03/12 15:44:12 1.4.2.1 +++ src/usr.bin/ssh/misc.c 2001/03/21 18:52:52 1.4.2.2 @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.4.2.1 2001/03/12 15:44:12 jason Exp $ */ +/* $OpenBSD: misc.c,v 1.4.2.2 2001/03/21 18:52:52 jason Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -25,10 +25,11 @@ */ #include "includes.h" -RCSID("$OpenBSD: misc.c,v 1.4.2.1 2001/03/12 15:44:12 jason Exp $"); +RCSID("$OpenBSD: misc.c,v 1.4.2.2 2001/03/21 18:52:52 jason Exp $"); #include "misc.h" #include "log.h" +#include "xmalloc.h" char * chop(char *s) @@ -94,4 +95,21 @@ *s += strspn(*s + 1, WHITESPACE) + 1; return (old); +} + +struct passwd * +pwcopy(struct passwd *pw) +{ + struct passwd *copy = xmalloc(sizeof(*copy)); + + memset(copy, 0, sizeof(*copy)); + copy->pw_name = xstrdup(pw->pw_name); + copy->pw_passwd = xstrdup(pw->pw_passwd); + copy->pw_gecos = xstrdup(pw->pw_gecos); + copy->pw_uid = pw->pw_uid; + copy->pw_gid = pw->pw_gid; + copy->pw_class = xstrdup(pw->pw_class); + copy->pw_dir = xstrdup(pw->pw_dir); + copy->pw_shell = xstrdup(pw->pw_shell); + return copy; }