-
Notifications
You must be signed in to change notification settings - Fork 7.3k
Comparing changes
Open a pull request
base repository: nginx/nginx
base: release-1.26.2
head repository: nginx/nginx
compare: release-1.26.3
- 17 commits
- 17 files changed
- 4 contributors
Commits on Aug 12, 2024
-
Configuration menu - View commit details
-
Copy full SHA for 99a5842 - Browse repository at this point
Copy the full SHA 99a5842View commit details
Commits on Feb 5, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 11b890d - Browse repository at this point
Copy the full SHA 11b890dView commit details -
Configuration menu - View commit details
-
Copy full SHA for bfe0a1f - Browse repository at this point
Copy the full SHA bfe0a1fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 35a1420 - Browse repository at this point
Copy the full SHA 35a1420View commit details -
Configuration menu - View commit details
-
Copy full SHA for cfd6833 - Browse repository at this point
Copy the full SHA cfd6833View commit details -
Mp4: fixed handling an empty run of chunks in stsc atom.
A specially crafted mp4 file with an empty run of chunks in the stsc atom and a large value for samples per chunk for that run, combined with a specially crafted request, allowed to store that large value in prev_samples and later in trak->end_chunk_samples while in ngx_http_mp4_crop_stsc_data(). Later in ngx_http_mp4_update_stsz_atom() this could result in buffer overread while calculating trak->end_chunk_samples_size. Now the value of samples per chunk specified for an empty run is ignored.
Configuration menu - View commit details
-
Copy full SHA for 4712dee - Browse repository at this point
Copy the full SHA 4712deeView commit details -
Mp4: unordered stsc chunks error for the final chunk.
Currently an error is triggered if any of the chunk runs in stsc are unordered. This however does not include the final chunk run, which ends with trak->chunks + 1. The previous chunk index can be larger leading to a 32-bit overflow. This could allow to skip the validity check "if (start_sample > n)". This could later lead to a large trak->start_chunk/trak->end_chunk, which would be caught later in ngx_http_mp4_update_stco_atom() or ngx_http_mp4_update_co64_atom(). While there are no implications of the validity check being avoided, the change still adds a check to ensure the final chunk run is ordered, to produce a meaningful error and avoid a potential integer overflow.
Configuration menu - View commit details
-
Copy full SHA for 1ebe58a - Browse repository at this point
Copy the full SHA 1ebe58aView commit details -
Mp4: prevent chunk index underflow.
When cropping stsc atom, it's assumed that chunk index is never 0. Based on this assumption, start_chunk and end_chunk are calculated by subtracting 1 from it. If chunk index is zero, start_chunk or end_chunk may underflow, which will later trigger "start/end time is out mp4 stco chunks" error. The change adds an explicit check for zero chunk index to avoid underflow and report a proper error. Zero chunk index is explicitly banned in ISO/IEC 14496-12, 8.7.4 Sample To Chunk Box. It's also implicitly banned in QuickTime File Format specification. Description of chunk offset table references "Chunk 1" as the first table element.
Configuration menu - View commit details
-
Copy full SHA for e9e83db - Browse repository at this point
Copy the full SHA e9e83dbView commit details -
QUIC: ignore version negotiation packets.
Previously, such packets were treated as long header packets with unknown version 0, and a version negotiation packet was sent in response. This could be used to set up an infinite traffic reflect loop with another nginx instance. Now version negotiation packets are ignored. As per RFC 9000, Section 6.1: An endpoint MUST NOT send a Version Negotiation packet in response to receiving a Version Negotiation packet.
Configuration menu - View commit details
-
Copy full SHA for 0d11f28 - Browse repository at this point
Copy the full SHA 0d11f28View commit details -
QUIC: fixed accessing a released stream.
While trying to close a stream in ngx_quic_close_streams() by calling its read event handler, the next stream saved prior to that could be destroyed recursively. This caused a segfault while trying to access the next stream. The way the next stream could be destroyed in HTTP/3 is the following. A request stream read event handler ngx_http_request_handler() could end up calling ngx_http_v3_send_cancel_stream() to report a cancelled request stream in the decoder stream. If sending stream cancellation decoder instruction fails for any reason, and the decoder stream is the next in order after the request stream, the issue is triggered. The fix is to postpone calling read event handlers for all streams being closed to avoid closing a released stream.
Configuration menu - View commit details
-
Copy full SHA for 5c8a92f - Browse repository at this point
Copy the full SHA 5c8a92fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9778240 - Browse repository at this point
Copy the full SHA 9778240View commit details -
Gzip: compatibility with recent zlib-ng 2.2.x versions.
It now uses 5/4 times more memory for the pending buffer. Further, a single allocation is now used, which takes additional 56 bytes for deflate_allocs in 64-bit mode aligned to 16, to store sub-allocation pointers, and the total allocation size now padded up to 128 bytes, which takes theoretically 200 additional bytes in total. This fits though into "4 * (64 + sizeof(void*))" additional space for ZALLOC used in zlib-ng 2.1.x versions. The comment was updated to reflect this.
Configuration menu - View commit details
-
Copy full SHA for 9cda581 - Browse repository at this point
Copy the full SHA 9cda581View commit details -
QUIC: added missing casts in iov_base assignments.
This is consistent with the rest of the code and fixes build on systems with non-standard definition of struct iovec (Solaris, Illumos).
Configuration menu - View commit details
-
Copy full SHA for 2e42c1e - Browse repository at this point
Copy the full SHA 2e42c1eView commit details -
Configure: fixed --with-libatomic=DIR with recent libatomic_ops.
The build location of the resulting libatomic_ops.a was changed in v7.4.0 after converting libatomic_ops to use libtool. The fix is to use library from the install path, this allows building with both old and new versions. Initially reported here: https://mailman.nginx.org/pipermail/nginx/2018-April/056054.html
Configuration menu - View commit details
-
Copy full SHA for a43f127 - Browse repository at this point
Copy the full SHA a43f127View commit details -
Configuration menu - View commit details
-
Copy full SHA for 95f9116 - Browse repository at this point
Copy the full SHA 95f9116View commit details -
SNI: added restriction for TLSv1.3 cross-SNI session resumption.
In OpenSSL, session resumption always happens in the default SSL context, prior to invoking the SNI callback. Further, unlike in TLSv1.2 and older protocols, SSL_get_servername() returns values received in the resumption handshake, which may be different from the value in the initial handshake. Notably, this makes the restriction added in b720f65 insufficient for sessions resumed with different SNI server name. Considering the example from b720f65, previously, a client was able to request example.org by presenting a certificate for example.org, then to resume and request example.com. The fix is to reject handshakes resumed with a different server name, if verification of client certificates is enabled in a corresponding server configuration.
Configuration menu - View commit details
-
Copy full SHA for 13935cf - Browse repository at this point
Copy the full SHA 13935cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1be0fb0 - Browse repository at this point
Copy the full SHA 1be0fb0View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff release-1.26.2...release-1.26.3