Added memory constraints to things to keep everything memory safe from anomalies & attacks
This commit is contained in:
parent
eec732eb29
commit
527eb75d67
16
src/main.ino
16
src/main.ino
@ -274,7 +274,8 @@ void scanWiFiNetworks() {
|
|||||||
net.channel = WiFi.channel(i);
|
net.channel = WiFi.channel(i);
|
||||||
net.rssi = WiFi.RSSI(i);
|
net.rssi = WiFi.RSSI(i);
|
||||||
net.encryption = (WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? "Open" : "Secured";
|
net.encryption = (WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? "Open" : "Secured";
|
||||||
net.ssid = WiFi.SSID(i);
|
String ssid = WiFi.SSID(i).substring(0, 32); // WiFi SSIDs are limited to 32 characters
|
||||||
|
net.ssid = ssid;
|
||||||
wifiNetworks.push_back(net);
|
wifiNetworks.push_back(net);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,7 +293,7 @@ void handlePasswordInput(char key) {
|
|||||||
inputBuffer.remove(inputBuffer.length() - 1);
|
inputBuffer.remove(inputBuffer.length() - 1);
|
||||||
displayPasswordInputLine();
|
displayPasswordInputLine();
|
||||||
}
|
}
|
||||||
} else {
|
} else if (inputBuffer.length() < 63) { // WiFi passwords are limited to 63 characters
|
||||||
inputBuffer += key;
|
inputBuffer += key;
|
||||||
displayPasswordInputLine();
|
displayPasswordInputLine();
|
||||||
}
|
}
|
||||||
@ -415,6 +416,11 @@ bool connectToIRC() {
|
|||||||
|
|
||||||
|
|
||||||
void sendIRC(String command) {
|
void sendIRC(String command) {
|
||||||
|
if (command.length() > 510) {
|
||||||
|
Serial.println("Failed to send: Command too long");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (client.connected()) {
|
if (client.connected()) {
|
||||||
if (client.println(command))
|
if (client.println(command))
|
||||||
Serial.println("IRC: >>> " + command);
|
Serial.println("IRC: >>> " + command);
|
||||||
@ -429,6 +435,12 @@ void sendIRC(String command) {
|
|||||||
void handleIRC() {
|
void handleIRC() {
|
||||||
while (client.available()) {
|
while (client.available()) {
|
||||||
String line = client.readStringUntil('\n');
|
String line = client.readStringUntil('\n');
|
||||||
|
|
||||||
|
// This is an anomaly, but it can happen and I wanted debug output for if it does
|
||||||
|
if (line.length() > 512)
|
||||||
|
Serial.println("WARNING: IRC line length exceeds 512 characters!");
|
||||||
|
line = line.substring(0, 512); // Truncate the line to 512 characters anyways
|
||||||
|
|
||||||
Serial.println("IRC: " + line);
|
Serial.println("IRC: " + line);
|
||||||
|
|
||||||
int firstSpace = line.indexOf(' ');
|
int firstSpace = line.indexOf(' ');
|
||||||
|
Loading…
Reference in New Issue
Block a user