commit 37a62e32b838f8045bb3ff8df319e4403793dbe7 from: Omar Polo via: Thomas Adam date: Tue May 28 12:01:21 2024 UTC gotwebd: use the last matching fastcgi parameter in case of multiple parameters with the same name, use the last matching one. commit - fc2225adf10d92baa1e52d02e9dcafa196a740a1 commit + 37a62e32b838f8045bb3ff8df319e4403793dbe7 blob - 68018d2b45f2f8cac750ce175aec556d0d612083 blob + e4fd0600fbbe578a6644119ed941b29406e42df5 --- gotwebd/fcgi.c +++ gotwebd/fcgi.c @@ -234,24 +234,21 @@ fcgi_parse_params(uint8_t *buf, uint16_t n, struct req val = buf + name_len; - if (c->querystring[0] == '\0' && - val_len < MAX_QUERYSTRING && + if (val_len < MAX_QUERYSTRING && name_len == 12 && strncmp(buf, "QUERY_STRING", 12) == 0) { memcpy(c->querystring, val, val_len); c->querystring[val_len] = '\0'; } - if (c->document_uri[0] == '\0' && - val_len < MAX_DOCUMENT_URI && + if (val_len < MAX_DOCUMENT_URI && name_len == 12 && strncmp(buf, "DOCUMENT_URI", 12) == 0) { memcpy(c->document_uri, val, val_len); c->document_uri[val_len] = '\0'; } - if (c->server_name[0] == '\0' && - val_len < MAX_SERVER_NAME && + if (val_len < MAX_SERVER_NAME && name_len == 11 && strncmp(buf, "SERVER_NAME", 11) == 0) { memcpy(c->server_name, val, val_len);