summaryrefslogtreecommitdiffstats
path: root/lib/libc/string/strdup.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/string/strdup.c')
-rw-r--r--lib/libc/string/strdup.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/lib/libc/string/strdup.c b/lib/libc/string/strdup.c
index 74c462d2411..be7f7ad0946 100644
--- a/lib/libc/string/strdup.c
+++ b/lib/libc/string/strdup.c
@@ -1,6 +1,8 @@
+/* $OpenBSD: strdup.c,v 1.3 1997/08/20 04:18:52 millert Exp $ */
+
/*
- * Copyright (c) 1988 The Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1988, 1993
+ * The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -32,9 +34,16 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: strdup.c,v 1.2 1996/08/19 08:34:16 tholo Exp $";
+#if 0
+static char sccsid[] = "@(#)strdup.c 8.1 (Berkeley) 6/4/93";
+#else
+static char *rcsid = "$OpenBSD: strdup.c,v 1.3 1997/08/20 04:18:52 millert Exp $";
+#endif
#endif /* LIBC_SCCS and not lint */
+#include <sys/types.h>
+
+#include <stddef.h>
#include <stdlib.h>
#include <string.h>
@@ -42,12 +51,12 @@ char *
strdup(str)
const char *str;
{
- size_t len;
+ size_t siz;
char *copy;
- len = strlen(str) + 1;
- if (!(copy = malloc(len)))
- return((char *)NULL);
- memcpy(copy, str, len);
+ siz = strlen(str) + 1;
+ if ((copy = malloc(siz)) == NULL)
+ return(NULL);
+ (void)memcpy(copy, str, siz);
return(copy);
}