- Add our own strdup() and make use of it
authormichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>
Tue, 23 Dec 2014 20:26:04 +0000 (20:26 +0000)
committermichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>
Tue, 23 Dec 2014 20:26:04 +0000 (20:26 +0000)
git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/trunk@5094 82007160-df01-0410-b94d-b575c5fd34c7

src/libopm/src/config.c
src/libopm/src/libopm.c
src/libopm/src/malloc.c
src/libopm/src/malloc.h

index 9c4cde5d10dcd77da0963446f4d0308315f6ae51..6b1e6bf9676525a2187afd2be7d9ed47b025f9fb 100644 (file)
@@ -89,7 +89,7 @@ OPM_CONFIG_T *libopm_config_create()
             break;
 
          case OPM_TYPE_STRING:
-            ret->vars[i] = strdup("");
+            ret->vars[i] = libopm_xstrdup("");
             break;
 
          case OPM_TYPE_ADDRESS:
@@ -187,7 +187,7 @@ OPM_ERR_T libopm_config_set(OPM_CONFIG_T *config, int key, void *value)
       case OPM_TYPE_STRING:
          if((char *) config->vars[key] != NULL)
             MyFree(config->vars[key]);
-         config->vars[key] = strdup((char *) value);
+         config->vars[key] = libopm_xstrdup((char *) value);
          break;
 
       case OPM_TYPE_INT:
@@ -201,7 +201,7 @@ OPM_ERR_T libopm_config_set(OPM_CONFIG_T *config, int key, void *value)
          break; 
 
       case OPM_TYPE_STRINGLIST:
-         node = libopm_node_create(strdup((char *) value));
+         node = libopm_node_create(libopm_xstrdup((char *) value));
          libopm_list_add((OPM_LIST_T *) config->vars[key], node);
          break;                        
 
index 226a7c9d921d64464df8816a684e77f71ee3a57a..65b8ae52d9eb29818f1b04efc967fe6a2fe833dc 100644 (file)
@@ -169,8 +169,8 @@ OPM_REMOTE_T *opm_remote_create(const char *ip)
    if(ip == NULL)
       return NULL;
 
-   ret->ip = (char*) strdup(ip);  /* replace with custom strdup function */
+   ret->ip = libopm_xstrdup(ip);
+
    ret->port          = 0;
    ret->protocol      = 0;
    ret->bytes_read    = 0;
index eb8ea1363aaf5ab80a7e2422a5f7988dc80672f8..0749ba4ad4a7675422c1d20c7da7987e9119cdf3 100644 (file)
@@ -22,6 +22,7 @@
  */
 
 #include <assert.h>
+#include <string.h>
 #include "setup.h"
 
 #include "malloc.h"
@@ -68,3 +69,14 @@ void libopm_MyFree(void **var)
       free(*var);
    *var = NULL;
 }
+
+void *
+libopm_xstrdup(const char *s)
+{
+  void *ret = malloc(strlen(s) + 1);
+
+  assert(ret);
+  strcpy(ret, s);
+
+  return ret;
+}
index 54c77092c1e484d3f23703c47471f13a788f3a5e..debf22e28fcc3133f4eefaeafe653012f74d2f3a 100644 (file)
@@ -12,5 +12,6 @@
 
 void *libopm_MyMalloc(size_t bytes);
 void libopm_MyFree(void **var);
+extern void *libopm_xstrdup(const char *);
 
 #endif /* MALLOC_H */