summaryrefslogtreecommitdiff
path: root/protocols/Facebook/src/mqtt.cpp
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2021-02-13 18:15:30 +0300
committerGeorge Hazan <ghazan@miranda.im>2021-02-13 18:15:30 +0300
commit39a3597cf974ef228630343899f1c8aea5158cde (patch)
tree8fbc7a3b596b82c6c5f0f7b5662ef606f22551f2 /protocols/Facebook/src/mqtt.cpp
parent3c8e2e2e886c774cda909dbe2d121fad7d3fc295 (diff)
fixes #2722 (Facebook: Miranda cannot receive messages fromF B messenger mobile app for IOS)
Diffstat (limited to 'protocols/Facebook/src/mqtt.cpp')
-rw-r--r--protocols/Facebook/src/mqtt.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/protocols/Facebook/src/mqtt.cpp b/protocols/Facebook/src/mqtt.cpp
index 21e4e6001e..837bdd359d 100644
--- a/protocols/Facebook/src/mqtt.cpp
+++ b/protocols/Facebook/src/mqtt.cpp
@@ -49,11 +49,19 @@ uint8_t *FacebookProto::doUnzip(size_t cbData, const void *pData, size_t &cbRes)
zStreamOut.next_in = (uint8_t *)pData;
zStreamOut.avail_out = (unsigned)dataSize;
zStreamOut.next_out = (uint8_t *)pRes;
- inflate(&zStreamOut, Z_FINISH);
+ int rc = inflate(&zStreamOut, Z_FINISH);
inflateEnd(&zStreamOut);
- cbRes = dataSize - zStreamOut.avail_out;
- return pRes;
+ switch (rc) {
+ case Z_OK:
+ case Z_STREAM_END:
+ cbRes = dataSize - zStreamOut.avail_out;
+ return pRes;
+ }
+
+ mir_free(pRes);
+ cbRes = 0;
+ return nullptr;
}
/////////////////////////////////////////////////////////////////////////////////////////