=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/misc.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- src/usr.bin/ssh/misc.c 2001/01/21 19:05:52 1.1 +++ src/usr.bin/ssh/misc.c 2001/02/22 21:59:44 1.2 @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.1 2001/01/21 19:05:52 markus Exp $ */ +/* $OpenBSD: misc.c,v 1.2 2001/02/22 21:59:44 markus Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -25,7 +25,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: misc.c,v 1.1 2001/01/21 19:05:52 markus Exp $"); +RCSID("$OpenBSD: misc.c,v 1.2 2001/02/22 21:59:44 markus Exp $"); #include "misc.h" #include "log.h" @@ -94,4 +94,19 @@ *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_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; }