MCPcopy Create free account
hub / github.com/FastLED/FastLED / validateESP32Firmware

Function validateESP32Firmware

src/platforms/esp/32/ota/ota_impl.cpp.hpp:427–450  ·  view source on GitHub ↗

@brief Validate ESP32 firmware image header @param data Pointer to firmware data (at least 24 bytes) @param len Length of firmware data @return true if firmware header is valid, false otherwise

Source from the content-addressed store, hash-verified

425/// @param len Length of firmware data
426/// @return true if firmware header is valid, false otherwise
427bool validateESP32Firmware(const u8* data, size_t len) {
428 // Need at least 24 bytes for ESP32 image header
429 if (len < 24) {
430 FL_WARN("Firmware validation: header too small (" << len << " bytes)");
431 return false;
432 }
433
434 // Check ESP32 magic byte (0xE9)
435 if (data[0] != 0xE9) {
436 FL_WARN("Firmware validation: invalid magic byte 0x"
437 << (int)data[0] << " (expected 0xE9)");
438 return false;
439 }
440
441 // Check segment count is reasonable (1-16)
442 u8 segments = data[1];
443 if (segments == 0 || segments > 16) {
444 FL_WARN("Firmware validation: invalid segment count " << (int)segments);
445 return false;
446 }
447
448 FL_DBG("Firmware validation passed: magic=0xE9, segments=" << (int)segments);
449 return true;
450}
451
452/// @brief HTTP handler for GET requests to root path (serves upload page)
453/// @param req HTTP request handle

Callers 1

otaHttpPostHandlerFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected