]> diplodocus.org Git - nmh/blobdiff - sbr/getcpy.c
Fix invalid pointer arithmetic.
[nmh] / sbr / getcpy.c
index 846d33a954c2ac2433795cd8d49215a9e098f733..615f307f192d878779051dec383032d42e26e44a 100644 (file)
@@ -1,8 +1,6 @@
-
-/*
- * getcpy.c -- copy a string in managed memory
+/* getcpy.c -- copy a string in managed memory
  *
- * THIS IS OBSOLETE.  NEED TO REPLACE ALL OCCURENCES
+ * THIS IS OBSOLETE.  NEED TO REPLACE ALL OCCURRENCES
  * OF GETCPY WITH STRDUP.  BUT THIS WILL REQUIRE
  * CHANGING PARTS OF THE CODE TO DEAL WITH NULL VALUES.
  *
 #include <h/mh.h>
 #include <h/utils.h>
 
-
-char *
-getcpy (const char *str)
+/* Return malloc'd copy of str, or of "" if NULL, exit on failure. */
+char *getcpy(const char *str)
 {
-    char *cp;
-    size_t len;
+    if (str)
+        return mh_xstrdup(str);
 
-    if (str) {
-       len = strlen(str) + 1;
-       cp = mh_xmalloc (len);
-       memcpy (cp, str, len);
-    } else {
-       cp = mh_xmalloc ((size_t) 1);
-       *cp = '\0';
-    }
-    return cp;
+    return mh_xcalloc(1, 1);
 }