Corrected a bad array index overflow in the apiTesterApi function :(

This commit is contained in:
Th3maz1ng 2022-03-29 23:18:43 +02:00
parent fb1d592dd1
commit 6b1a06f1f7

View File

@ -4,7 +4,9 @@
boolean apiTesterApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient* wc, void* pData) boolean apiTesterApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient* wc, void* pData)
{ {
char buffer[100]; (void)HRD;
(void)pData;
char buffer[200];
WEBServer<WEBClient>::injectApiHeader(buffer, "application/json", "{\"status\":\"ok\",\"API\":\"available\"}"); WEBServer<WEBClient>::injectApiHeader(buffer, "application/json", "{\"status\":\"ok\",\"API\":\"available\"}");
wc->print(buffer); wc->print(buffer);
@ -36,12 +38,13 @@ boolean viewByUIDApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc,
boolean nextViewApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean nextViewApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
SAB *p = (SAB *)pData; SAB *p = (SAB *)pData;
char buffer[200]; char buffer[200];
p->getScreenManager().displayNextView(); p->getScreenManager().displayNextView();
if(p->getScreenManager().getError() == OK) if(p->getScreenManager().getError() == ScreenManager::OK)
sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{\"status\":\"ok\",\"ViewUID\":\"%d\"}", p->getScreenManager().getCurrentViewUID()); sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{\"status\":\"ok\",\"ViewUID\":\"%d\"}", p->getScreenManager().getCurrentViewUID());
else else
sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{\"status\":\"failed\",\"message\":\"%s\"}", p->getScreenManager().getErrorMessage()); sprintf(buffer, "HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{\"status\":\"failed\",\"message\":\"%s\"}", p->getScreenManager().getErrorMessage());
@ -51,6 +54,7 @@ boolean nextViewApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc,
boolean reloadViewApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean reloadViewApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
SAB *p = (SAB *)pData; SAB *p = (SAB *)pData;
char buffer[200]; char buffer[200];
@ -65,6 +69,7 @@ boolean reloadViewApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
boolean rtcGetTimeApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean rtcGetTimeApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
SAB *p = (SAB *)pData; SAB *p = (SAB *)pData;
char buffer[200]; char buffer[200];
DateTime d = p->getRtcManager().getDateTime(); DateTime d = p->getRtcManager().getDateTime();
@ -195,6 +200,7 @@ boolean espResetApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc,
boolean sdCardSizeApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean sdCardSizeApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
SAB *p = (SAB *)pData; SAB *p = (SAB *)pData;
char buffer[200]; char buffer[200];
double size = p->getSdCardManager().getSize(GBYTE); double size = p->getSdCardManager().getSize(GBYTE);
@ -209,6 +215,7 @@ boolean sdCardSizeApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
boolean staWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean staWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
SAB *p = (SAB *)pData; SAB *p = (SAB *)pData;
char buffer[300]; char buffer[300];
IPAddress IP = p->getConnectivityManager().localIP(); IPAddress IP = p->getConnectivityManager().localIP();
@ -236,6 +243,8 @@ boolean staWifiInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *w
boolean apScannerApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean apScannerApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
(void)pData;
uint8_t number = WiFi.scanNetworks(); uint8_t number = WiFi.scanNetworks();
wc->print("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n["); wc->print("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n[");
@ -250,6 +259,7 @@ boolean apScannerApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc,
boolean systemInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean systemInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
SAB *p = (SAB *)pData; SAB *p = (SAB *)pData;
char buffer[300]; char buffer[300];
uint32_t freeMem; uint32_t freeMem;
@ -267,6 +277,7 @@ boolean systemInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc
boolean powerInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData) boolean powerInfoApi(WEBServer<WEBClient>::HttpRequestData &HRD, WiFiClient *wc, void *pData)
{ {
(void)HRD;
SAB *p = (SAB *)pData; SAB *p = (SAB *)pData;
char buffer[300]; char buffer[300];
PowerManager::PowerInfo pi = p->getPowerManager().getPowerInfo(); PowerManager::PowerInfo pi = p->getPowerManager().getPowerInfo();