1
0
mirror of https://github.com/apache/httpd.git synced 2026-10-23 22:49:01 +03:00
Files
apache/modules
Joe Orton e3a8b4e1e6 mod_cgid: Raise the limit on the number of environment variables passed
to a script from 256 to APACHE_ARG_MAX, and bound URI/query/env-value
lengths against the configured request limits rather than APR_PATH_MAX.
PR 70270.

* changes-entries/cgid-env-limit.txt: Add changelog entry.

* modules/generators/mod_cgid.c: Replace ENV_COUNT_MAX with ENV_VAL_MAX,
  a sanity bound on the length of a single environment variable value.
  (get_req): Take the main server_rec as an argument.  Allow up to
  APACHE_ARG_MAX environment variables; check uri_len and args_len
  against the configured LimitRequestLine rather than APR_PATH_MAX;
  check each environment variable value against ENV_VAL_MAX.
  (send_req): Fail with APR_ENOSPC if more than APACHE_ARG_MAX
  environment variables are present.
  (cgid_server): Pass main_server to get_req.

* test/modules/generators/htdocs/cgi/: New tests scripts.

* test/modules/generators/test_001_cgid.py: New tests.

Submitted by: Emmanuel Dreyfus <manu netbsd.org>, jorton
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
GitHub: closes #850


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1939165 13f79535-47bb-0310-9956-ffa450edef68
2026-10-16 18:55:52 +00:00
..
2026-09-29 08:20:19 +00:00
2026-09-29 08:10:35 +00:00
2026-10-05 16:48:51 +00:00
…

The directory structure for this level is as follows:

aaa/
  This directory contains modules dealing with authorization and
  authentication.

arch/

cache/
  This directory houses modules that implement file and data caching
  capability.

database/
  The apache DBD framework manages connections to SQL backends efficiently.

cluster/
  Modules for working with multiple servers.

dav/
  This directory houses modules that implement WebDAV functionality.

echo/

examples/
  This directory contains some sample code that should help you on your
  way to develop your own Apache modules.  

experimental/
  In this directory we've placed some modules which we think
  provide some pretty interesting functionality, but which
  are still in the early stages of development and could
  evolve radically in the future.  This code isn't supported
  officially.

filters/
  This directory houses modules that perform general inline data filtering.

generators/
  This directory houses modules that perform data generation functions.

http/
  This directory houses modules that basic HTTP protocol implementation.

http2/
  This directory houses modules that provide HTTP/2 protocol implementation.

loggers/
  This directory houses modules that handle logging functions.

mappers/
  This directory houses modules that handle URL mapping and
  rewriting.

metadata/
  This directory houses modules that deal with Header metadata.

proxy/
  This houses the code for the proxy module for Apache.

ssl/
  This directory houses code for OpenSSL functionality.

test/
  This directory houses modules which test various components 
  of Apache.  You should not compile these into a production
  server.