You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: critical security vulnerabilities and improve proxy test coverage
This commit addresses multiple security issues discovered during edge case
analysis and improves test infrastructure for better reliability.
Security Fixes:
- Fix HTTP/1.1 body reallocation bug causing data loss (#1)
* Modified realloc_body_buffer() to use current_data_size parameter
* Fixes issue where response->body_len was 0 during receive
* Prevents data loss when buffer needs to grow during receive
- Add integer overflow protection in 8 critical locations (#7, #8)
* HTTP/2 data callback buffer doubling (http2_logic.c:140)
* HTTP/1.1 body buffer reallocation (http1.c:417, 549, 606)
* Gzip decompression buffer expansion (compression.c:55)
* Response header array growth (response.c:123)
* Request header array growth (request.c:112)
* Async request array growth (async_request_manager.c:171)
* All checks use SIZE_MAX/2 to prevent integer overflow
- Fix memory leak in DNS cache deep copy (#13)
* Added proper cleanup on allocation failures in addrinfo_deep_copy()
* Prevents memory leaks when malloc/strdup fails mid-operation
Async HTTP Proxy Improvements:
- Fix async HTTP proxy to use absolute URI for proxy requests
- Add Proxy-Authorization header support for authenticated HTTP proxies
- Properly distinguish between HTTP (uses absolute URI) and HTTPS (uses path)
Test Infrastructure:
- Add comprehensive edge case security tests (25 test cases)
* Integer overflow protection tests
* Memory leak prevention tests
* Thread safety tests
* Boundary condition tests
- Add buffer reallocation regression tests (11 test cases)
* Large response handling
* Gzip decompression
* Chunked transfer encoding
* Multiple buffer doubling scenarios
- Update proxy tests to use httpmorph-bin.bytetunnels.com
* Added fixtures for both HTTP and HTTPS testing
* HTTPS uses verify=False for self-signed certificates
* Improved test reliability by using dedicated test server
Results: All 371 tests pass with 14 expected skips
0 commit comments