From 4e11583205327ce9d65c744473baff28d54979b3 Mon Sep 17 00:00:00 2001 From: "Naram Qashat cyberbotx@cyberbotx.com" Date: Sun, 5 Oct 2008 03:01:18 +0000 Subject: Fix problems with using ValueContainerChar by creating a specialized template for ValueContainer. Note: The solution uses new to allocate memory for the variable, we'll have to look into deleting the memory at shutdown, or replacing the char * variables with std::string. git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1424 5417fbe8-f217-4b02-8779-1006273d7864 --- src/config.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/config.c b/src/config.c index 536a0d2f3..ddced7ed9 100644 --- a/src/config.c +++ b/src/config.c @@ -596,29 +596,25 @@ int ServerConfig::Read(bool bail) case DT_NOSPACES: { ValueContainerChar *vcc = dynamic_cast(Values[Index].val); ValidateNoSpaces(vi.GetString(), Values[Index].tag, Values[Index].value); - char *tmp = vi.GetString(); - vcc->Set(&tmp, strlen(vi.GetString()) + 1); + vcc->Set(vi.GetString(), strlen(vi.GetString()) + 1); } break; case DT_HOSTNAME: { ValueContainerChar *vcc = dynamic_cast(Values[Index].val); ValidateHostname(vi.GetString(), Values[Index].tag, Values[Index].value); - char *tmp = vi.GetString(); - vcc->Set(&tmp, strlen(vi.GetString()) + 1); + vcc->Set(vi.GetString(), strlen(vi.GetString()) + 1); } break; case DT_IPADDRESS: { ValueContainerChar *vcc = dynamic_cast(Values[Index].val); ValidateIP(vi.GetString(), Values[Index].tag, Values[Index].value, allow_wild); - char *tmp = vi.GetString(); - vcc->Set(&tmp, strlen(vi.GetString()) + 1); + vcc->Set(vi.GetString(), strlen(vi.GetString()) + 1); } break; case DT_CHARPTR: { ValueContainerChar *vcc = dynamic_cast(Values[Index].val); // Make sure we also copy the null terminator - char *tmp = vi.GetString(); - vcc->Set(&tmp, strlen(vi.GetString()) + 1); + vcc->Set(vi.GetString(), strlen(vi.GetString()) + 1); } break; case DT_STRING: { -- cgit