diff --git a/lib/default/pubsubclient-2.8.12/.gitignore b/lib/default/pubsubclient-2.8.13/.gitignore similarity index 100% rename from lib/default/pubsubclient-2.8.12/.gitignore rename to lib/default/pubsubclient-2.8.13/.gitignore diff --git a/lib/default/pubsubclient-2.8.12/.travis.yml b/lib/default/pubsubclient-2.8.13/.travis.yml similarity index 100% rename from lib/default/pubsubclient-2.8.12/.travis.yml rename to lib/default/pubsubclient-2.8.13/.travis.yml diff --git a/lib/default/pubsubclient-2.8.12/CHANGES.txt b/lib/default/pubsubclient-2.8.13/CHANGES.txt similarity index 100% rename from lib/default/pubsubclient-2.8.12/CHANGES.txt rename to lib/default/pubsubclient-2.8.13/CHANGES.txt diff --git a/lib/default/pubsubclient-2.8.12/LICENSE.txt b/lib/default/pubsubclient-2.8.13/LICENSE.txt similarity index 100% rename from lib/default/pubsubclient-2.8.12/LICENSE.txt rename to lib/default/pubsubclient-2.8.13/LICENSE.txt diff --git a/lib/default/pubsubclient-2.8.12/README.md b/lib/default/pubsubclient-2.8.13/README.md similarity index 100% rename from lib/default/pubsubclient-2.8.12/README.md rename to lib/default/pubsubclient-2.8.13/README.md diff --git a/lib/default/pubsubclient-2.8.12/examples/mqtt_auth/mqtt_auth.ino b/lib/default/pubsubclient-2.8.13/examples/mqtt_auth/mqtt_auth.ino similarity index 100% rename from lib/default/pubsubclient-2.8.12/examples/mqtt_auth/mqtt_auth.ino rename to lib/default/pubsubclient-2.8.13/examples/mqtt_auth/mqtt_auth.ino diff --git a/lib/default/pubsubclient-2.8.12/examples/mqtt_basic/mqtt_basic.ino b/lib/default/pubsubclient-2.8.13/examples/mqtt_basic/mqtt_basic.ino similarity index 100% rename from lib/default/pubsubclient-2.8.12/examples/mqtt_basic/mqtt_basic.ino rename to lib/default/pubsubclient-2.8.13/examples/mqtt_basic/mqtt_basic.ino diff --git a/lib/default/pubsubclient-2.8.12/examples/mqtt_esp8266/mqtt_esp8266.ino b/lib/default/pubsubclient-2.8.13/examples/mqtt_esp8266/mqtt_esp8266.ino similarity index 100% rename from lib/default/pubsubclient-2.8.12/examples/mqtt_esp8266/mqtt_esp8266.ino rename to lib/default/pubsubclient-2.8.13/examples/mqtt_esp8266/mqtt_esp8266.ino diff --git a/lib/default/pubsubclient-2.8.12/examples/mqtt_large_message/mqtt_large_message.ino b/lib/default/pubsubclient-2.8.13/examples/mqtt_large_message/mqtt_large_message.ino similarity index 100% rename from lib/default/pubsubclient-2.8.12/examples/mqtt_large_message/mqtt_large_message.ino rename to lib/default/pubsubclient-2.8.13/examples/mqtt_large_message/mqtt_large_message.ino diff --git a/lib/default/pubsubclient-2.8.12/examples/mqtt_publish_in_callback/mqtt_publish_in_callback.ino b/lib/default/pubsubclient-2.8.13/examples/mqtt_publish_in_callback/mqtt_publish_in_callback.ino similarity index 100% rename from lib/default/pubsubclient-2.8.12/examples/mqtt_publish_in_callback/mqtt_publish_in_callback.ino rename to lib/default/pubsubclient-2.8.13/examples/mqtt_publish_in_callback/mqtt_publish_in_callback.ino diff --git a/lib/default/pubsubclient-2.8.12/examples/mqtt_reconnect_nonblocking/mqtt_reconnect_nonblocking.ino b/lib/default/pubsubclient-2.8.13/examples/mqtt_reconnect_nonblocking/mqtt_reconnect_nonblocking.ino similarity index 100% rename from lib/default/pubsubclient-2.8.12/examples/mqtt_reconnect_nonblocking/mqtt_reconnect_nonblocking.ino rename to lib/default/pubsubclient-2.8.13/examples/mqtt_reconnect_nonblocking/mqtt_reconnect_nonblocking.ino diff --git a/lib/default/pubsubclient-2.8.12/examples/mqtt_stream/mqtt_stream.ino b/lib/default/pubsubclient-2.8.13/examples/mqtt_stream/mqtt_stream.ino similarity index 100% rename from lib/default/pubsubclient-2.8.12/examples/mqtt_stream/mqtt_stream.ino rename to lib/default/pubsubclient-2.8.13/examples/mqtt_stream/mqtt_stream.ino diff --git a/lib/default/pubsubclient-2.8.12/keywords.txt b/lib/default/pubsubclient-2.8.13/keywords.txt similarity index 100% rename from lib/default/pubsubclient-2.8.12/keywords.txt rename to lib/default/pubsubclient-2.8.13/keywords.txt diff --git a/lib/default/pubsubclient-2.8.12/library.json b/lib/default/pubsubclient-2.8.13/library.json similarity index 100% rename from lib/default/pubsubclient-2.8.12/library.json rename to lib/default/pubsubclient-2.8.13/library.json diff --git a/lib/default/pubsubclient-2.8.12/library.properties b/lib/default/pubsubclient-2.8.13/library.properties similarity index 100% rename from lib/default/pubsubclient-2.8.12/library.properties rename to lib/default/pubsubclient-2.8.13/library.properties diff --git a/lib/default/pubsubclient-2.8.12/src/PubSubClient.cpp b/lib/default/pubsubclient-2.8.13/src/PubSubClient.cpp similarity index 98% rename from lib/default/pubsubclient-2.8.12/src/PubSubClient.cpp rename to lib/default/pubsubclient-2.8.13/src/PubSubClient.cpp index acd0fab9b..c51879af0 100644 --- a/lib/default/pubsubclient-2.8.12/src/PubSubClient.cpp +++ b/lib/default/pubsubclient-2.8.13/src/PubSubClient.cpp @@ -439,6 +439,17 @@ boolean PubSubClient::loop() { if (type == MQTTPUBLISH) { if (callback) { uint16_t tl = (this->buffer[llen+1]<<8)+this->buffer[llen+2]; /* topic length in bytes */ + +// Start Tasmota patch +// Observed heap corruption in some cases since v10.0.0 +// Also see https://github.com/knolleary/pubsubclient/pull/843 + if (llen+3+tl>this->bufferSize) { + _state = MQTT_DISCONNECTED; + _client->stop(); + return false; + } +// End Tasmota patch + memmove(this->buffer+llen+2,this->buffer+llen+3,tl); /* move topic inside buffer 1 byte to front */ this->buffer[llen+2+tl] = 0; /* end the topic as a 'C' string with \x00 */ char *topic = (char*) this->buffer+llen+2; diff --git a/lib/default/pubsubclient-2.8.12/src/PubSubClient.h b/lib/default/pubsubclient-2.8.13/src/PubSubClient.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/src/PubSubClient.h rename to lib/default/pubsubclient-2.8.13/src/PubSubClient.h diff --git a/lib/default/pubsubclient-2.8.12/tests/.gitignore b/lib/default/pubsubclient-2.8.13/tests/.gitignore similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/.gitignore rename to lib/default/pubsubclient-2.8.13/tests/.gitignore diff --git a/lib/default/pubsubclient-2.8.12/tests/Makefile b/lib/default/pubsubclient-2.8.13/tests/Makefile similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/Makefile rename to lib/default/pubsubclient-2.8.13/tests/Makefile diff --git a/lib/default/pubsubclient-2.8.12/tests/README.md b/lib/default/pubsubclient-2.8.13/tests/README.md similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/README.md rename to lib/default/pubsubclient-2.8.13/tests/README.md diff --git a/lib/default/pubsubclient-2.8.12/tests/src/connect_spec.cpp b/lib/default/pubsubclient-2.8.13/tests/src/connect_spec.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/connect_spec.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/connect_spec.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/keepalive_spec.cpp b/lib/default/pubsubclient-2.8.13/tests/src/keepalive_spec.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/keepalive_spec.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/keepalive_spec.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/Arduino.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/Arduino.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/Arduino.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/Arduino.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/BDDTest.cpp b/lib/default/pubsubclient-2.8.13/tests/src/lib/BDDTest.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/BDDTest.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/lib/BDDTest.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/BDDTest.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/BDDTest.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/BDDTest.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/BDDTest.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/Buffer.cpp b/lib/default/pubsubclient-2.8.13/tests/src/lib/Buffer.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/Buffer.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/lib/Buffer.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/Buffer.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/Buffer.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/Buffer.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/Buffer.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/Client.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/Client.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/Client.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/Client.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/IPAddress.cpp b/lib/default/pubsubclient-2.8.13/tests/src/lib/IPAddress.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/IPAddress.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/lib/IPAddress.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/IPAddress.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/IPAddress.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/IPAddress.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/IPAddress.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/Print.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/Print.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/Print.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/Print.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/ShimClient.cpp b/lib/default/pubsubclient-2.8.13/tests/src/lib/ShimClient.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/ShimClient.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/lib/ShimClient.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/ShimClient.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/ShimClient.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/ShimClient.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/ShimClient.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/Stream.cpp b/lib/default/pubsubclient-2.8.13/tests/src/lib/Stream.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/Stream.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/lib/Stream.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/Stream.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/Stream.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/Stream.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/Stream.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/lib/trace.h b/lib/default/pubsubclient-2.8.13/tests/src/lib/trace.h similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/lib/trace.h rename to lib/default/pubsubclient-2.8.13/tests/src/lib/trace.h diff --git a/lib/default/pubsubclient-2.8.12/tests/src/publish_spec.cpp b/lib/default/pubsubclient-2.8.13/tests/src/publish_spec.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/publish_spec.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/publish_spec.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/receive_spec.cpp b/lib/default/pubsubclient-2.8.13/tests/src/receive_spec.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/receive_spec.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/receive_spec.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/src/subscribe_spec.cpp b/lib/default/pubsubclient-2.8.13/tests/src/subscribe_spec.cpp similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/src/subscribe_spec.cpp rename to lib/default/pubsubclient-2.8.13/tests/src/subscribe_spec.cpp diff --git a/lib/default/pubsubclient-2.8.12/tests/testcases/__init__.py b/lib/default/pubsubclient-2.8.13/tests/testcases/__init__.py similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/testcases/__init__.py rename to lib/default/pubsubclient-2.8.13/tests/testcases/__init__.py diff --git a/lib/default/pubsubclient-2.8.12/tests/testcases/mqtt_basic.py b/lib/default/pubsubclient-2.8.13/tests/testcases/mqtt_basic.py similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/testcases/mqtt_basic.py rename to lib/default/pubsubclient-2.8.13/tests/testcases/mqtt_basic.py diff --git a/lib/default/pubsubclient-2.8.12/tests/testcases/mqtt_publish_in_callback.py b/lib/default/pubsubclient-2.8.13/tests/testcases/mqtt_publish_in_callback.py similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/testcases/mqtt_publish_in_callback.py rename to lib/default/pubsubclient-2.8.13/tests/testcases/mqtt_publish_in_callback.py diff --git a/lib/default/pubsubclient-2.8.12/tests/testcases/settings.py b/lib/default/pubsubclient-2.8.13/tests/testcases/settings.py similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/testcases/settings.py rename to lib/default/pubsubclient-2.8.13/tests/testcases/settings.py diff --git a/lib/default/pubsubclient-2.8.12/tests/testsuite.py b/lib/default/pubsubclient-2.8.13/tests/testsuite.py similarity index 100% rename from lib/default/pubsubclient-2.8.12/tests/testsuite.py rename to lib/default/pubsubclient-2.8.13/tests/testsuite.py