diff --git a/cores/common/arduino/libraries/common/Update/Update.cpp b/cores/common/arduino/libraries/common/Update/Update.cpp index 0ec8782..c094da4 100644 --- a/cores/common/arduino/libraries/common/Update/Update.cpp +++ b/cores/common/arduino/libraries/common/Update/Update.cpp @@ -83,7 +83,8 @@ bool UpdateClass::end(bool evenIfRemaining) { // abort if not finished this->errArd = UPDATE_ERROR_ABORT; - this->md5Digest = static_cast(malloc(16)); + if (!this->md5Digest) + this->md5Digest = static_cast(malloc(16)); MD5Final(this->md5Digest, this->md5Ctx); this->cleanup(/* clearError= */ evenIfRemaining); diff --git a/cores/common/arduino/libraries/common/Update/UpdateUtil.cpp b/cores/common/arduino/libraries/common/Update/UpdateUtil.cpp index 22fa02f..353400a 100644 --- a/cores/common/arduino/libraries/common/Update/UpdateUtil.cpp +++ b/cores/common/arduino/libraries/common/Update/UpdateUtil.cpp @@ -77,7 +77,8 @@ bool UpdateClass::rollBack() { bool UpdateClass::setMD5(const char *md5) { if (strlen(md5) != 32) return false; - this->md5Expected = static_cast(malloc(16)); + if (!this->md5Expected) + this->md5Expected = static_cast(malloc(16)); if (!this->md5Expected) return false; lt_xtob(md5, 32, this->md5Expected);