From: michael Date: Tue, 23 Dec 2014 20:26:04 +0000 (+0000) Subject: - Add our own strdup() and make use of it X-Git-Tag: 1.0.0beta1~44 X-Git-Url: http://git.serene-ircd.net/?a=commitdiff_plain;h=0ee2d52ccefa7d30a765b6531948efd66056ed97;p=hopm.git - Add our own strdup() and make use of it git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/trunk@5094 82007160-df01-0410-b94d-b575c5fd34c7 --- diff --git a/src/libopm/src/config.c b/src/libopm/src/config.c index 9c4cde5..6b1e6bf 100644 --- a/src/libopm/src/config.c +++ b/src/libopm/src/config.c @@ -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; diff --git a/src/libopm/src/libopm.c b/src/libopm/src/libopm.c index 226a7c9..65b8ae5 100644 --- a/src/libopm/src/libopm.c +++ b/src/libopm/src/libopm.c @@ -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; diff --git a/src/libopm/src/malloc.c b/src/libopm/src/malloc.c index eb8ea13..0749ba4 100644 --- a/src/libopm/src/malloc.c +++ b/src/libopm/src/malloc.c @@ -22,6 +22,7 @@ */ #include +#include #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; +} diff --git a/src/libopm/src/malloc.h b/src/libopm/src/malloc.h index 54c7709..debf22e 100644 --- a/src/libopm/src/malloc.h +++ b/src/libopm/src/malloc.h @@ -12,5 +12,6 @@ void *libopm_MyMalloc(size_t bytes); void libopm_MyFree(void **var); +extern void *libopm_xstrdup(const char *); #endif /* MALLOC_H */