Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/libc/gen remove pw_dup(3), for now at least
details: https://anonhg.NetBSD.org/src/rev/c7eed63c5a44
branches: trunk
changeset: 552083:c7eed63c5a44
user: jdolecek <jdolecek%NetBSD.org@localhost>
date: Thu Sep 18 09:13:14 2003 +0000
description:
remove pw_dup(3), for now at least
follows discussion on mailing lists, discussed in private e-mail with Itojun
diffstat:
lib/libc/gen/Makefile.inc | 6 +-
lib/libc/gen/pw_dup.3 | 83 -------------------------------
lib/libc/gen/pw_dup.c | 121 ----------------------------------------------
3 files changed, 3 insertions(+), 207 deletions(-)
diffs (239 lines):
diff -r 05019830e65c -r c7eed63c5a44 lib/libc/gen/Makefile.inc
--- a/lib/libc/gen/Makefile.inc Thu Sep 18 08:16:40 2003 +0000
+++ b/lib/libc/gen/Makefile.inc Thu Sep 18 09:13:14 2003 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.124 2003/09/09 22:10:34 itojun Exp $
+# $NetBSD: Makefile.inc,v 1.125 2003/09/18 09:13:14 jdolecek Exp $
# from: @(#)Makefile.inc 8.6 (Berkeley) 5/4/95
# gen sources
@@ -16,7 +16,7 @@
isascii.c isatty.c isctype.c lockf.c nice.c nlist.c nlist_aout.c \
nlist_coff.c nlist_ecoff.c nlist_elf32.c nlist_elf64.c opendir.c \
pause.c popen.c psignal.c pthread_atfork.c pwcache.c pw_scan.c \
- pw_dup.c raise.c randomid.c readdir.c rewinddir.c \
+ raise.c randomid.c readdir.c rewinddir.c \
scandir.c seekdir.c setdomainname.c \
sethostname.c setjmperr.c setmode.c setproctitle.c setprogname.c \
shquote.c shquotev.c sighold.c sigignore.c siginterrupt.c \
@@ -52,7 +52,7 @@
ispunct.3 isspace.3 isupper.3 isxdigit.3 ldexp.3 lockf.3 \
_lwp_makecontext.3 makecontext.3 \
modf.3 nice.3 nlist.3 \
- pause.3 popen.3 psignal.3 pw_dup.3 pwcache.3 pthread_atfork.3 \
+ pause.3 popen.3 psignal.3 pwcache.3 pthread_atfork.3 \
raise.3 randomid.3 realpath.3 scandir.3 setjmp.3 setmode.3 \
setproctitle.3 shquote.3 sighold.3 sigignore.3 siginterrupt.3 \
signal.3 sigrelse.3 sigset.3 sigsetops.3 sleep.3 \
diff -r 05019830e65c -r c7eed63c5a44 lib/libc/gen/pw_dup.3
--- a/lib/libc/gen/pw_dup.3 Thu Sep 18 08:16:40 2003 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-.\" $NetBSD: pw_dup.3,v 1.2 2003/09/10 05:51:06 wiz Exp $
-.\" $OpenBSD: pw_dup.3,v 1.5 2003/06/17 21:56:23 millert Exp $
-.\"
-.\" Copyright (c) 2000 Todd C. Miller <Todd.Miller%courtesan.com@localhost>
-.\"
-.\" Permission to use, copy, modify, and distribute this software for any
-.\" purpose with or without fee is hereby granted, provided that the above
-.\" copyright notice and this permission notice appear in all copies.
-.\"
-.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-.\"
-.Dd November 15, 2000
-.Dt PW_DUP 3
-.Os
-.Sh NAME
-.Nm pw_dup
-.Nd make a copy of a struct passwd
-.Sh SYNOPSIS
-.In pwd.h
-.Ft struct passwd *
-.Fn pw_dup "const struct passwd *pw"
-.Sh DESCRIPTION
-The
-.Fn pw_dup
-function allocates sufficient memory for a copy of the struct passwd
-.Fa pw ,
-does the copy, and returns a pointer to it.
-This is useful as subsequent calls to
-.Fn getpwent ,
-.Fn getpwnam ,
-and
-.Fn getpwuid
-will overwrite the data from previous calls.
-.Pp
-The returned pointer may be deallocated by a single call to
-.Xr free 3 .
-Since
-.Fn pw_dup
-allocates space for the copy in one chunk it is not necessary to free
-the individual strings contained in the returned struct passwd.
-.Pp
-If insufficient memory is available,
-.Dv NULL
-is returned.
-.Sh EXAMPLES
-The following will make a copy of the struct passwd for root and
-store it in
-.Qq pw_save :
-.Bd -literal -offset indent
-struct passwd *pw, *pw_save;
-
-if ((pw = getpwnam("root")) == NULL) {
- fprintf(stderr, "Cannot find root in the password file.\en");
- exit(1);
-}
-if ((pw_save = pw_dup(pw)) == NULL) {
- fprintf(stderr, "Out of memory.\en");
- exit(1);
-}
-.Ed
-.Sh ERRORS
-.Fn pw_dup
-function may fail and set the external variable
-.Va errno
-for any of the errors specified for the library function
-.Xr malloc 3 .
-.Sh SEE ALSO
-.Xr free 3 ,
-.Xr getpwent 3 ,
-.Xr malloc 3
-.Sh HISTORY
-The
-.Fn pw_dup
-function first appeared in
-.Ox 2.9
-and
-.Nx 2.0 .
diff -r 05019830e65c -r c7eed63c5a44 lib/libc/gen/pw_dup.c
--- a/lib/libc/gen/pw_dup.c Thu Sep 18 08:16:40 2003 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/* $NetBSD: pw_dup.c,v 1.2 2003/09/13 22:28:12 itojun Exp $ */
-/* $OpenBSD: pw_dup.c,v 1.5 2003/06/17 21:56:23 millert Exp $ */
-
-/*
- * Copyright (c) 2000, 2002 Todd C. Miller <Todd.Miller%courtesan.com@localhost>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Sponsored in part by the Defense Advanced Research Projects
- * Agency (DARPA) and Air Force Research Laboratory, Air Force
- * Materiel Command, USAF, under agreement number F39502-99-1-0512.
- */
-
-#include <sys/cdefs.h>
-#if defined(LIBC_SCCS) && !defined(lint)
-#if 0
-static const char rcsid[] = "$OpenBSD: pw_dup.c,v 1.5 2003/06/17 21:56:23 millert Exp $";
-#else
-__RCSID("$NetBSD: pw_dup.c,v 1.2 2003/09/13 22:28:12 itojun Exp $");
-#endif
-#endif /* LIBC_SCCS and not lint */
-
-#include "namespace.h"
-
-#include <sys/types.h>
-
-#include <pwd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#ifdef __weak_alias
-__weak_alias(pw_dup,_pw_dup)
-#endif
-
-struct passwd *
-pw_dup(const struct passwd *pw)
-{
- char *cp;
- size_t nsize, psize, csize, gsize, dsize, ssize, total;
- struct passwd *newpw;
-
- /* Allocate in one big chunk for easy freeing */
- total = sizeof(struct passwd);
- if (pw->pw_name) {
- nsize = strlen(pw->pw_name) + 1;
- total += nsize;
- }
- if (pw->pw_passwd) {
- psize = strlen(pw->pw_passwd) + 1;
- total += psize;
- }
- if (pw->pw_class) {
- csize = strlen(pw->pw_class) + 1;
- total += csize;
- }
- if (pw->pw_gecos) {
- gsize = strlen(pw->pw_gecos) + 1;
- total += gsize;
- }
- if (pw->pw_dir) {
- dsize = strlen(pw->pw_dir) + 1;
- total += dsize;
- }
- if (pw->pw_shell) {
- ssize = strlen(pw->pw_shell) + 1;
- total += ssize;
- }
- if ((cp = malloc(total)) == NULL)
- return (NULL);
- newpw = (struct passwd *)(void *)cp;
-
- /*
- * Copy in passwd contents and make strings relative to space
- * at the end of the buffer.
- */
- (void)memcpy(newpw, pw, sizeof(struct passwd));
- cp += sizeof(struct passwd);
- if (pw->pw_name) {
- (void)memcpy(cp, pw->pw_name, nsize);
- newpw->pw_name = cp;
- cp += nsize;
- }
- if (pw->pw_passwd) {
- (void)memcpy(cp, pw->pw_passwd, psize);
- newpw->pw_passwd = cp;
- cp += psize;
- }
- if (pw->pw_class) {
- (void)memcpy(cp, pw->pw_class, csize);
- newpw->pw_class = cp;
- cp += csize;
- }
- if (pw->pw_gecos) {
- (void)memcpy(cp, pw->pw_gecos, gsize);
- newpw->pw_gecos = cp;
- cp += gsize;
- }
- if (pw->pw_dir) {
- (void)memcpy(cp, pw->pw_dir, dsize);
- newpw->pw_dir = cp;
- cp += dsize;
- }
- if (pw->pw_shell) {
- (void)memcpy(cp, pw->pw_shell, ssize);
- newpw->pw_shell = cp;
- cp += ssize;
- }
-
- return (newpw);
-}
Home |
Main Index |
Thread Index |
Old Index