From 41d958020e64eba9a02ed7faabb919d97f0a7280 Mon Sep 17 00:00:00 2001 From: Theo Arends <11044339+arendst@users.noreply.github.com> Date: Tue, 28 Dec 2021 16:05:38 +0100 Subject: [PATCH] Fix possible heap corruption due to PubSubClient memmove Fix possible heap corruption due to invalid PubSubClient memmove parameters (#13700) --- .../.gitignore | 0 .../.travis.yml | 0 .../CHANGES.txt | 0 .../LICENSE.txt | 0 .../README.md | 0 .../examples/mqtt_auth/mqtt_auth.ino | 0 .../examples/mqtt_basic/mqtt_basic.ino | 0 .../examples/mqtt_esp8266/mqtt_esp8266.ino | 0 .../mqtt_large_message/mqtt_large_message.ino | 0 .../mqtt_publish_in_callback.ino | 0 .../mqtt_reconnect_nonblocking.ino | 0 .../examples/mqtt_stream/mqtt_stream.ino | 0 .../keywords.txt | 0 .../library.json | 0 .../library.properties | 0 .../src/PubSubClient.cpp | 11 +++++++++++ .../src/PubSubClient.h | 0 .../tests/.gitignore | 0 .../tests/Makefile | 0 .../tests/README.md | 0 .../tests/src/connect_spec.cpp | 0 .../tests/src/keepalive_spec.cpp | 0 .../tests/src/lib/Arduino.h | 0 .../tests/src/lib/BDDTest.cpp | 0 .../tests/src/lib/BDDTest.h | 0 .../tests/src/lib/Buffer.cpp | 0 .../tests/src/lib/Buffer.h | 0 .../tests/src/lib/Client.h | 0 .../tests/src/lib/IPAddress.cpp | 0 .../tests/src/lib/IPAddress.h | 0 .../tests/src/lib/Print.h | 0 .../tests/src/lib/ShimClient.cpp | 0 .../tests/src/lib/ShimClient.h | 0 .../tests/src/lib/Stream.cpp | 0 .../tests/src/lib/Stream.h | 0 .../tests/src/lib/trace.h | 0 .../tests/src/publish_spec.cpp | 0 .../tests/src/receive_spec.cpp | 0 .../tests/src/subscribe_spec.cpp | 0 .../tests/testcases/__init__.py | 0 .../tests/testcases/mqtt_basic.py | 0 .../tests/testcases/mqtt_publish_in_callback.py | 0 .../tests/testcases/settings.py | 0 .../tests/testsuite.py | 0 44 files changed, 11 insertions(+) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/.gitignore (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/.travis.yml (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/CHANGES.txt (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/LICENSE.txt (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/README.md (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/examples/mqtt_auth/mqtt_auth.ino (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/examples/mqtt_basic/mqtt_basic.ino (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/examples/mqtt_esp8266/mqtt_esp8266.ino (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/examples/mqtt_large_message/mqtt_large_message.ino (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/examples/mqtt_publish_in_callback/mqtt_publish_in_callback.ino (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/examples/mqtt_reconnect_nonblocking/mqtt_reconnect_nonblocking.ino (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/examples/mqtt_stream/mqtt_stream.ino (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/keywords.txt (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/library.json (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/library.properties (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/src/PubSubClient.cpp (98%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/src/PubSubClient.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/.gitignore (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/Makefile (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/README.md (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/connect_spec.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/keepalive_spec.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/Arduino.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/BDDTest.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/BDDTest.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/Buffer.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/Buffer.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/Client.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/IPAddress.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/IPAddress.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/Print.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/ShimClient.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/ShimClient.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/Stream.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/Stream.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/lib/trace.h (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/publish_spec.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/receive_spec.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/src/subscribe_spec.cpp (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/testcases/__init__.py (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/testcases/mqtt_basic.py (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/testcases/mqtt_publish_in_callback.py (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/testcases/settings.py (100%) rename lib/default/{pubsubclient-2.8.12 => pubsubclient-2.8.13}/tests/testsuite.py (100%) 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