Use malloc+memcpy rather than calloc+strcpy in rs_strdup.
authorLinus Nordberg <linus@nordberg.se>
Fri, 10 May 2013 16:06:44 +0000 (18:06 +0200)
committerLinus Nordberg <linus@nordberg.se>
Fri, 10 May 2013 16:06:44 +0000 (18:06 +0200)
For effiency (but triggered by calloc needing unistd.h on Darwin).

Conflicts:
lib/util.c

lib/util.c

index 671fcde..1142afa 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright 2012 NORDUnet A/S. All rights reserved.
+/* Copyright 2012,2013 NORDUnet A/S. All rights reserved.
    See LICENSE for licensing information.  */
 
 #include <string.h>
@@ -9,12 +9,16 @@
 char *
 rs_strdup (struct rs_context *ctx, const char *s)
 {
-  char *buf = rs_calloc (ctx, 1, strlen (s) + 1);
+  size_t len;
+  char *buf;
 
-  if (buf)
-    strcpy (buf, s);
+  len = strlen (s);
+  buf = rs_malloc (ctx, len + 1);
+
+  if (buf != NULL)
+    memcpy (buf, s, len + 1);
   else
-    rs_err_ctx_push (ctx, RSE_NOMEM, NULL);
+    rs_err_ctx_push (ctx, RSE_NOMEM, __func__);
 
   return buf;
 }