View Issue Details

IDProjectCategoryView StatusLast Update
0011418libmicrohttpdHTTP GET/HEADpublic2026-05-20 13:01
Reporterveloman-yunkan Assigned ToChristian Grothoff  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionno change required 
Product VersionGit master 
Target Version1.0.3Fixed in Version1.0.3 
Summary0011418: Handling of URLs containing % symbols has changed
DescriptionThe commit https://git.gnunet.org/gnunet/libmicrohttpd/commit/ec6e6d288876606af964747f97379aa9371c4206.html has affected the handling of URLs containing a % symbol not followed by two valid hex digits (e.g. "http://localhost:8080/qwe%rty"). Before that change such URLs were accepted and the % symbol was preserved as is. Now such URLs are rejected with an HTTP 400 Bad Request error.

The description of the said commit doesn't suggest that this change in behaviour was intentional, and that's why I am bringing it to your attention.
Steps To Reproduce1. Build examples
2. ./src/examples/demo 8080
3. curl -D - http://localhost:8080/qwe%rty
  - Before the change in question, HTTP 404 Not Found response is returned
  - After the change in question, HTTP 400 Bad Reqest response is returned
TagsNo tags attached.

Activities

Christian Grothoff

2026-05-20 13:01

manager   ~0028671

You are right that it could have been pointed out better, but the change was intentional, as 'plain' % in the URL is invalid and the change was about hardening MHD URL parsing to be more restrictive with respect to malformed requests.

Issue History

Date Modified Username Field Change
2026-05-20 11:05 veloman-yunkan New Issue
2026-05-20 13:01 Christian Grothoff Note Added: 0028671
2026-05-20 13:01 Christian Grothoff Assigned To => Christian Grothoff
2026-05-20 13:01 Christian Grothoff Status new => resolved
2026-05-20 13:01 Christian Grothoff Resolution open => no change required
2026-05-20 13:01 Christian Grothoff Fixed in Version => 1.0.3
2026-05-20 13:01 Christian Grothoff Product Version => Git master
2026-05-20 13:01 Christian Grothoff Target Version => 1.0.3
2026-05-20 13:01 Christian Grothoff Status resolved => closed