From f11c65e9a77eb721eff4388a96c1bc936d561149 Mon Sep 17 00:00:00 2001 From: Markus Sattler Date: Mon, 22 Jun 2015 10:23:33 +0200 Subject: [PATCH] add basic check for valid data for in updateSketch (first byte of bin is always 0xE9) send SDK version by HTTP Update --- cores/esp8266/Esp.cpp | 7 +++++++ libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp | 3 +++ 2 files changed, 10 insertions(+) diff --git a/cores/esp8266/Esp.cpp b/cores/esp8266/Esp.cpp index 4d9d8b033..504cf028d 100644 --- a/cores/esp8266/Esp.cpp +++ b/cores/esp8266/Esp.cpp @@ -414,6 +414,13 @@ bool EspClass::updateSketch(Stream& in, uint32_t size) { return false; } + if(addr == freeSpaceStart) { + // check for valid first magic byte + if(*((uint8 *) buffer.get()) != 0xE9) { + return false; + } + } + noInterrupts(); rc = SPIWrite(addr, buffer.get(), willRead); interrupts(); diff --git a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp index 118ec894f..ef48087e1 100644 --- a/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp +++ b/libraries/ESP8266httpUpdate/src/ESP8266httpUpdate.cpp @@ -72,6 +72,9 @@ t_httpUpdate_return ESP8266HTTPUpdate::update(const char *host, uint16_t port, c req += "\r\n" "x-ESP8266-chip-size: "; req += ESP.getFlashChipRealSize(); + req += "\r\n" + "x-ESP8266-sdk-version: "; + req += ESP.getSdkVersion(); if(current_version[0] != 0x00) { req += "\r\n"