summaryrefslogtreecommitdiff
path: root/src/modulemanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r--src/modulemanager.cpp5
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();