diff options
author | Alexander Tkachev | 2016-07-26 13:01:09 +0600 |
---|---|---|
committer | Alexander Tkachev | 2016-08-24 16:07:55 +0600 |
commit | 2c34864a06f31d1d909f7abe62d8047409fe9f00 (patch) | |
tree | 48974b65cc90396ec098c899e07f5428fe5fd022 /backends/networking/sdl_net | |
parent | 46dda5fce0ac38f54eb7e97889bf3dc6816b8766 (diff) | |
download | scummvm-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.cpp | 9 |
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( |