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.c35
1 files changed, 19 insertions, 16 deletions
diff --git a/src/lib/libc/string/strdup.c b/src/lib/libc/string/strdup.c
index 27ede44110..bbea59888c 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.5 2003/06/11 21:08:16 deraadt 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 *
@@ -32,23 +30,28 @@
32 */ 30 */
33 31
34#if defined(LIBC_SCCS) && !defined(lint) 32#if defined(LIBC_SCCS) && !defined(lint)
35/*static char *sccsid = "from: @(#)strdup.c 5.4 (Berkeley) 2/24/91";*/ 33#if 0
36static char *rcsid = "$Id: strdup.c,v 1.1.1.1 1995/10/18 08:42:22 deraadt Exp $"; 34static char sccsid[] = "@(#)strdup.c 8.1 (Berkeley) 6/4/93";
35#else
36static char *rcsid = "$OpenBSD: strdup.c,v 1.5 2003/06/11 21:08:16 deraadt Exp $";
37#endif
37#endif /* LIBC_SCCS and not lint */ 38#endif /* LIBC_SCCS and not lint */
38 39
40#include <sys/types.h>
41
42#include <stddef.h>
39#include <stdlib.h> 43#include <stdlib.h>
40#include <string.h> 44#include <string.h>
41 45
42char * 46char *
43strdup(str) 47strdup(const char *str)
44 const char *str;
45{ 48{
46 size_t len; 49 size_t siz;
47 char *copy; 50 char *copy;
48 51
49 len = strlen(str) + 1; 52 siz = strlen(str) + 1;
50 if (!(copy = malloc(len))) 53 if ((copy = malloc(siz)) == NULL)
51 return((char *)NULL); 54 return(NULL);
52 memcpy(copy, str, len); 55 (void)memcpy(copy, str, siz);
53 return(copy); 56 return(copy);
54} 57}