summaryrefslogtreecommitdiff
path: root/src/lib/libc/string/strdup.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/string/strdup.c')
-rw-r--r--src/lib/libc/string/strdup.c31
1 files changed, 13 insertions, 18 deletions
diff --git a/src/lib/libc/string/strdup.c b/src/lib/libc/string/strdup.c
index 27ede44110..a6aa1e03b0 100644
--- a/src/lib/libc/string/strdup.c
+++ b/src/lib/libc/string/strdup.c
@@ -1,6 +1,8 @@
1/* $OpenBSD: strdup.c,v 1.6 2005/08/08 08:05:37 espie Exp $ */
2
1/* 3/*
2 * Copyright (c) 1988 The Regents of the University of California. 4 * Copyright (c) 1988, 1993
3 * All rights reserved. 5 * The Regents of the University of California. All rights reserved.
4 * 6 *
5 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
@@ -10,11 +12,7 @@
10 * 2. Redistributions in binary form must reproduce the above copyright 12 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the 13 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution. 14 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software 15 * 3. Neither the name of the University nor the names of its contributors
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software 16 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission. 17 * without specific prior written permission.
20 * 18 *
@@ -31,24 +29,21 @@
31 * SUCH DAMAGE. 29 * SUCH DAMAGE.
32 */ 30 */
33 31
34#if defined(LIBC_SCCS) && !defined(lint) 32#include <sys/types.h>
35/*static char *sccsid = "from: @(#)strdup.c 5.4 (Berkeley) 2/24/91";*/
36static char *rcsid = "$Id: strdup.c,v 1.1.1.1 1995/10/18 08:42:22 deraadt Exp $";
37#endif /* LIBC_SCCS and not lint */
38 33
34#include <stddef.h>
39#include <stdlib.h> 35#include <stdlib.h>
40#include <string.h> 36#include <string.h>
41 37
42char * 38char *
43strdup(str) 39strdup(const char *str)
44 const char *str;
45{ 40{
46 size_t len; 41 size_t siz;
47 char *copy; 42 char *copy;
48 43
49 len = strlen(str) + 1; 44 siz = strlen(str) + 1;
50 if (!(copy = malloc(len))) 45 if ((copy = malloc(siz)) == NULL)
51 return((char *)NULL); 46 return(NULL);
52 memcpy(copy, str, len); 47 (void)memcpy(copy, str, siz);
53 return(copy); 48 return(copy);
54} 49}