diff options
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r-- | src/modulemanager.cpp | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index 5e2165e30..50eff0cbd 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -93,16 +93,15 @@ static ModuleReturn moduleCopyFile(const Anope::string &name, Anope::string &out } int want = s.st_size; - char *buffer = new char[s.st_size]; + char buffer[1024]; while (want > 0 && !source.fail() && !target.fail()) { - source.read(buffer, want); + source.read(buffer, std::min(want, static_cast<int>(sizeof(buffer)))); int read_len = source.gcount(); target.write(buffer, read_len); want -= read_len; } - delete [] buffer; source.close(); target.close(); |