summaryrefslogtreecommitdiff
path: root/gl/strdup.c
diff options
context:
space:
mode:
authorSimon Josefsson <simon@josefsson.org>2006-05-12 10:02:14 +0000
committerSimon Josefsson <simon@josefsson.org>2006-05-12 10:02:14 +0000
commitdd92699c22e89329f7be8e1cd3a580107f956098 (patch)
tree569f860873935ffa188ea232ef138f3f1e53ed54 /gl/strdup.c
parent249474059250a2ad27c48e8071046058ee0da5bd (diff)
downloadgnutls-dd92699c22e89329f7be8e1cd3a580107f956098.tar.gz
Add getaddrinfo.
Diffstat (limited to 'gl/strdup.c')
-rw-r--r--gl/strdup.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/gl/strdup.c b/gl/strdup.c
new file mode 100644
index 0000000000..84df5b8043
--- /dev/null
+++ b/gl/strdup.c
@@ -0,0 +1,56 @@
+/* Copyright (C) 1991, 1996, 1997, 1998, 2002, 2003, 2004 Free Software
+ Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License along
+ with this program; if not, write to the Free Software Foundation,
+ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifndef _LIBC
+/* Get specification. */
+# include "strdup.h"
+#endif
+
+#include <stdlib.h>
+#include <string.h>
+
+#undef __strdup
+#undef strdup
+
+#ifndef weak_alias
+# define __strdup strdup
+#endif
+
+/* Duplicate S, returning an identical malloc'd string. */
+char *
+__strdup (const char *s)
+{
+ size_t len = strlen (s) + 1;
+ void *new = malloc (len);
+
+ if (new == NULL)
+ return NULL;
+
+ return (char *) memcpy (new, s, len);
+}
+#ifdef libc_hidden_def
+libc_hidden_def (__strdup)
+#endif
+#ifdef weak_alias
+weak_alias (__strdup, strdup)
+#endif