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