Skip to content

Commit 31d376b

Browse files
committed
fix signature check
1 parent e085f8d commit 31d376b

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

src/esp32FOTA.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -441,23 +441,22 @@ bool esp32FOTA::execOTA( int partition, bool restart_after )
441441
mode_z = F_isZlibStream();
442442

443443
log_d("compression: %s", mode_z ? "enabled" : "disabled" );
444-
// If using compression, the size is implicitely unknown
445-
size_t fwsize = mode_z ? UPDATE_SIZE_UNKNOWN : updateSize; // fw_size is unknown if we have a compressed image
446444

447445
if( _cfg.check_sig ) {
448446
if( mode_z ) {
449447
Serial.println("[ERROR] Compressed && signed image is not (yet) supported");
450448
return false;
451449
}
452-
if( updateSize != UPDATE_SIZE_UNKNOWN ) {
453-
if( updateSize <= FW_SIGNATURE_LENGTH ) {
450+
if( updateSize == UPDATE_SIZE_UNKNOWN || updateSize <= FW_SIGNATURE_LENGTH ) {
454451
Serial.println("[ERROR] Malformed signature+fw combo");
455452
return false;
456-
}
457-
updateSize -= FW_SIGNATURE_LENGTH;
458453
}
454+
updateSize -= FW_SIGNATURE_LENGTH;
459455
}
460456

457+
// If using compression, the size is implicitely unknown
458+
size_t fwsize = mode_z ? UPDATE_SIZE_UNKNOWN : updateSize; // fw_size is unknown if we have a compressed image
459+
461460
bool canBegin = F_canBegin();
462461

463462
if( !canBegin ) {

src/esp32FOTA.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ extern "C" {
8080
#define F_Update FlashZ::getInstance()
8181
#define F_hasZlib() true
8282
#define F_isZlibStream() (_stream->peek() == ZLIB_HEADER && ((partition == U_SPIFFS && _flashFileSystemUrl.indexOf("zz")>-1) || (partition == U_FLASH && _firmwareUrl.indexOf("zz")>-1)))
83-
#define F_canBegin() (mode_z ? F_Update.beginz(UPDATE_SIZE_UNKNOWN, partition) : F_Update.begin(fwsize, partition))
83+
#define F_canBegin() (mode_z ? F_Update.beginz(UPDATE_SIZE_UNKNOWN, partition) : F_Update.begin(updateSize, partition))
8484
#define F_UpdateEnd() (mode_z ? F_Update.endz() : F_Update.end())
8585
#define F_abort() if (mode_z) F_Update.abortz(); else F_Update.abort()
8686
#define F_writeStream() (mode_z ? F_Update.writezStream(*_stream, updateSize) : F_Update.writeStream(*_stream))
@@ -91,7 +91,7 @@ extern "C" {
9191
#define F_Update GzUpdateClass::getInstance()
9292
#define F_hasZlib() true
9393
#define F_isZlibStream() (_stream->peek() == 0x1f && ((partition == U_SPIFFS && _flashFileSystemUrl.indexOf("gz")>-1) || (partition == U_FLASH && _firmwareUrl.indexOf("gz")>-1)) )
94-
#define F_canBegin() (mode_z ? F_Update.begingz(UPDATE_SIZE_UNKNOWN, partition) : F_Update.begin(fwsize, partition))
94+
#define F_canBegin() (mode_z ? F_Update.begingz(UPDATE_SIZE_UNKNOWN, partition) : F_Update.begin(updateSize, partition))
9595
#define F_UpdateEnd() (mode_z ? F_Update.endgz() : F_Update.end())
9696
#define F_abort() if (mode_z) F_Update.abortgz(); else F_Update.abort()
9797
#define F_writeStream() (mode_z ? F_Update.writeGzStream(*_stream, updateSize) : F_Update.writeStream(*_stream))
@@ -100,7 +100,7 @@ extern "C" {
100100
#define F_Update Update
101101
#define F_hasZlib() false
102102
#define F_isZlibStream() false
103-
#define F_canBegin() F_Update.begin(fwsize, partition)
103+
#define F_canBegin() F_Update.begin(updateSize, partition)
104104
#define F_UpdateEnd() F_Update.end()
105105
#define F_abort() F_Update.abort()
106106
#define F_writeStream() F_Update.writeStream(*_stream);

0 commit comments

Comments
 (0)