aboutsummaryrefslogtreecommitdiff
path: root/backends/networking/sdl_net
diff options
context:
space:
mode:
authorAlexander Tkachev2016-07-26 13:01:09 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commit2c34864a06f31d1d909f7abe62d8047409fe9f00 (patch)
tree48974b65cc90396ec098c899e07f5428fe5fd022 /backends/networking/sdl_net
parent46dda5fce0ac38f54eb7e97889bf3dc6816b8766 (diff)
downloadscummvm-rg350-2c34864a06f31d1d909f7abe62d8047409fe9f00.tar.gz
scummvm-rg350-2c34864a06f31d1d909f7abe62d8047409fe9f00.tar.bz2
scummvm-rg350-2c34864a06f31d1d909f7abe62d8047409fe9f00.zip
CLOUD: Fix UploadFileClientHandler
A few possible memory leaks about `_contentStream` there.
Diffstat (limited to 'backends/networking/sdl_net')
-rw-r--r--backends/networking/sdl_net/uploadfileclienthandler.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/backends/networking/sdl_net/uploadfileclienthandler.cpp b/backends/networking/sdl_net/uploadfileclienthandler.cpp
index 048ff39810..e2832bcba5 100644
--- a/backends/networking/sdl_net/uploadfileclienthandler.cpp
+++ b/backends/networking/sdl_net/uploadfileclienthandler.cpp
@@ -137,6 +137,12 @@ void UploadFileClientHandler::handleBlockHeaders(Client *client) {
return;
}
+ // remove previous stream (if there is one)
+ if (_contentStream) {
+ delete _contentStream;
+ _contentStream = nullptr;
+ }
+
// create file stream (and necessary subdirectories)
Common::DumpFile *f = new Common::DumpFile();
if (!f->open(originalNode->getPath(), true)) {
@@ -156,6 +162,9 @@ void UploadFileClientHandler::handleBlockContent(Client *client) {
_contentStream->flush();
++_uploadedFiles;
+ delete _contentStream;
+ _contentStream = nullptr;
+
if (client->noMoreContent()) {
// success - redirect back to directory listing
HandlerUtils::setMessageHandler(