summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/configreader.h8
-rw-r--r--include/inspstring.h14
-rw-r--r--src/configreader.cpp8
-rw-r--r--src/users.cpp4
4 files changed, 10 insertions, 24 deletions
diff --git a/include/configreader.h b/include/configreader.h
index e70a1478a..c8cd13081 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -46,19 +46,19 @@ struct operclass_data : public classbase
{
/** Command list for the class
*/
- char *commandlist;
+ std::string commandlist;
/** Channel mode list for the class
*/
- char *cmodelist;
+ std::string cmodelist;
/** User mode list for the class
*/
- char *umodelist;
+ std::string umodelist;
/** Priviledges given by this class
*/
- char *privs;
+ std::string privs;
};
/** A Set of oper classes
diff --git a/include/inspstring.h b/include/inspstring.h
index 54bb1c8bd..4a7fa6271 100644
--- a/include/inspstring.h
+++ b/include/inspstring.h
@@ -39,19 +39,5 @@ CoreExport int charlcat(char* x,char y,int z);
*/
CoreExport bool charremove(char* mp, char remove);
-/** strnewdup() is an implemenetation of strdup() which calls operator new
- * rather than malloc to allocate the new string, therefore allowing it to
- * be hooked into the C++ memory manager, and freed with operator delete.
- * This is required for windows, where we override operators new and delete
- * to allow for global allocation between modules and the core.
- */
-inline char * strnewdup(const char * s1)
-{
- size_t len = strlen(s1) + 1;
- char * p = new char[len];
- memcpy(p, s1, len);
- return p;
-}
-
#endif
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 7babc7bb7..eaea3f006 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -558,10 +558,10 @@ static bool DoClass(ServerConfig* conf, const char* tag, const char**, ValueList
}
}
- conf->operclass[ClassName].commandlist = strnewdup(CommandList);
- conf->operclass[ClassName].umodelist = strnewdup(UModeList);
- conf->operclass[ClassName].cmodelist = strnewdup(CModeList);
- conf->operclass[ClassName].privs = strnewdup(PrivsList);
+ conf->operclass[ClassName].commandlist = CommandList;
+ conf->operclass[ClassName].umodelist = UModeList;
+ conf->operclass[ClassName].cmodelist = CModeList;
+ conf->operclass[ClassName].privs = PrivsList;
return true;
}
diff --git a/src/users.cpp b/src/users.cpp
index 921403f47..fdad68e2a 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -787,7 +787,7 @@ void User::Oper(const std::string &opertype, const std::string &opername)
this->AllowedPrivs->insert(mypriv);
}
- for (unsigned char* c = (unsigned char*)iter_operclass->second.umodelist; *c; ++c)
+ for (unsigned char* c = (unsigned char*)iter_operclass->second.umodelist.c_str(); *c; ++c)
{
if (*c == '*')
{
@@ -799,7 +799,7 @@ void User::Oper(const std::string &opertype, const std::string &opername)
}
}
- for (unsigned char* c = (unsigned char*)iter_operclass->second.cmodelist; *c; ++c)
+ for (unsigned char* c = (unsigned char*)iter_operclass->second.cmodelist.c_str(); *c; ++c)
{
if (*c == '*')
{