Skip to content

Empty URL query name cause ESP32 to crash #456

Description

@rev1204

Platform

ESP32

IDE / Tooling

pioarduino

What happened?

Getting the URL arguments from normal URL like this works:

192.168.4.1/?n=v

But if URL has an empty key:

192.168.4.1/?=v

It crash the ESP32.
I know it's not a valid URL, but it should not crash. Tried with latest v3.11.2. Last version without crash that I know is v3.6.2.

Stack Trace

Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.

Core 1 register dump:
PC : 0x400dc7b1 PS : 0x00060330 A0 : 0x800dc7e2 A1 : 0x3ffd5290
A2 : 0x3ffd52dc A3 : 0x00000010 A4 : 0x00000001 A5 : 0x3ffd15f8
A6 : 0x3ffd54cc A7 : 0x3ffc3fd8 A8 : 0x800dc4b0 A9 : 0x3ffd5270
A10 : 0x00000010 A11 : 0x00000000 A12 : 0x00000011 A13 : 0x3ffd543c
A14 : 0x3ffc3fd8 A15 : 0x3ffd542c SAR : 0x00000010 EXCCAUSE: 0x0000001c
EXCVADDR: 0x0000001f LBEG : 0x40089099 LEND : 0x400890bd LCOUNT : 0x800dca25

Backtrace: 0x400dc7ae:0x3ffd5290 0x400dc7df:0x3ffd52b0 0x400db726:0x3ffd52d0 0x400d6cce:0x3ffd5330 0x40166837:0x3ffd5370 0x400d6956:0x3ffd5390 0x400d6ac5:0x3ffd53b0 0x400d6d9e:0x3ffd5420 0x400d6956:0x3ffd5460 0x400d6ac5:0x3ffd5480 0x400d6f1b:0x3ffd54f0 0x400d869b:0x3ffd5530 0x400d958c:0x3ffd5570 0x400d96e9:0x3ffd5590 0x400d4579:0x3ffd55b0 0x400d4bf9:0x3ffd55e0 0x400d4d25:0x3ffd5600 0x4008c68d:0x3ffd5630

ELF file SHA256: a7b99706e

Rebooting...

Minimal Reproductible Example (MRE)

MRE:

#include <Arduino.h>
#include <WiFi.h>
#include <ESPAsyncWebServer.h>

AsyncWebServer server(80);

void setup() {
  delay(1000);
  Serial.begin(2000000);
  Serial.println("\nSTART");

  WiFi.mode(WIFI_AP);
  WiFi.softAP("test", "88888888");
  
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    String v = request->arg(0u);
    Serial.println(v);
    request->send(200, "text/plain", "OK");
  });
  server.begin();
}

void loop() {}

I confirm that:

  • I have read the documentation.
  • I have searched for similar discussions.
  • I have searched for similar issues.
  • I have looked at the examples.
  • I have upgraded to the lasted version of ESPAsyncWebServer (and AsyncTCP for ESP32).

Metadata

Metadata

Assignees

Type

Fields

No fields configured for Bug.

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions