Debian Patches

Status for uwsgi/2.0.31-7

Patch Description Author Forwarded Bugs Origin Last update
1006_fix_check_hex_always_hex.patch fix check_hex always hex Alexandre Rossi <alexandre.rossi@gmail.com> yes 2026-09-07
1005_fix-pidfile-perms.patch use secure --daemonize umask When using --pidfile with --daemonize, the created pidfile is world writeable
and this breaks stop action of initscripts using start-stop-daemon.
This may also enable a normal user to kill any process.
Alexandre Rossi <niol@zincube.net> yes
1004_plugin_jvm_set_release.patch plugin jvm: allow one to set JVM compat release Alexandre Rossi <niol@zincube.net> yes
1003_fix_rack3_headers.patch rack plugin: rack3 header values can be an Array to handle multiple values Alexandre Rossi <alexandre.rossi@gmail.com> yes 2026-01-13
1001_avoid_setting_RPATH.patch Remove value assignments to environment variable LD_RUN_PATH Value assignment to environment variable LD_RUN_PATH leads to setting RPATH in
compiled binary/shared library.
.
And then Lintian reports about error (E: binary-or-shlib-defines-rpath).
Janos Guljas <janos@debian.org> not-needed 2016-02-08
1002_fix-reload-process-name.patch Preserve process name on reload Function uwsgi_reload is using uwsgi.binary_path as first argument in
execvp(). If the daemon is started through a symlink, uwsgi_reload will
use that link's target and change the process name. With a different process
name start-stop-daemon, used in init scripts, is unable to control the
daemon.
Janos Guljas <janos@debian.org> not-needed 2013-04-23
1011_backlog_uds.patch Handle backlog of UNIX socket too
The cheaper subsystem specifies that "backlog is only available on Linux
and only on TCP sockets (not UNIX domain sockets)."
This commit specifically implement this: UNIX domain socket support for
backlog on Linux, using Netlink to call the kernel and get the queue status.
Pierre Ducroquet <pducroquet@entrouvert.com> yes
1012_fix_manage_script_name_path_info_underflow.patch Fix path_info_len underflow in manage-script-name with trailing-slash mountpoints When a request path like /footris exactly matches a mountpoint /footris/
(after stripping the trailing slash for comparison), the manage-script-name
code sets script_name_len to 9 (the original mountpoint length including the
slash) but orig_path_info_len is only 8. The subtraction
orig_path_info_len - script_name_len = -1 wraps to 65535 when stored in the
uint16_t path_info_len field. Subsequent code then passes iov_len=65535 to
PyUnicode_DecodeLatin1, which reads far past the end of the allocated buffer.
On s390x this read crosses into an unmapped page and causes a segfault.
.
Fix: when orig_path_info_len is less than script_name_len (the only case
being the exact-match-without-trailing-slash scenario described above), set
path_info to an empty string (pointing at the end of the original path_info
buffer) with path_info_len = 0.
Bastian Germann <bage@debian.org> yes debian 2026-05-27
2001_ensure_verbose_build.patch Ensure verbose build in the uwsgi build systems This gets compiler command line logs in the build log
which is nice for debugging.
Alexandre Rossi <alexandre.rossi@gmail.com> not-needed 2020-06-05
2002_rename_py_plugins.patch Debian renames python related plugins for historical reasons. Rather than annoying users with a visible change, patch source to ensure all is ok
with Debian names:
python => python3 (as referred to in integration tests)
pypy => pypy3 (as referred to in integration tests and in plugin published
symbols)
Also fix pypy test conf for Debian environment.
--
Alexandre Rossi <niol@zincube.net> not-needed 2026-01-26
2003_plugin_builder_py3.patch Use python3 to build plugins as default Alexandre Rossi <niol@zincube.net> not-needed
2050_Fix_Transfer-Encoding_chunked_brokenness_over_TLS.patch Retry the read after wait_read_hook in uwsgi_chunked_input_recv It took me years to understand why OpenStack Glance wouldn't work over
uwsgi, and I finally found out. The issue is in uwsgi itself.
.
After uwsgi.wait_read_hook() reports the socket as readable,
uwsgi_chunked_input_recv() performed exactly one proto_read_body() and
returned -1 on ANY failure (including EAGAIN), aborting the chunked
input with "unable to receive chunked part". This works reasonably
well without TLS.
.
With TLS, POLLIN only means "some TLS bytes arrived"; OpenSSL routinely
consumes a partial record (split across TCP segments) and returns
SSL_ERROR_WANT_READ right after POLLIN. A single failed post-wait read
then aborted the request, so any Transfer-Encoding: chunked request
whose body does not arrive in one burst failed fast with an HTTP 500,
while the client was still sending the body.
.
This can be reproduced with a client that streams a large body in chunks
with pauses in between, or generates the body on the fly (e.g. piped
from another process), and works fine as soon as the whole body is
available at once. This description matches 100% what OpenStack Nova
and Glance are doing when doing a backup.
.
To fix this, this patch loops back to the read/wait cycle on EAGAIN
instead: EOF (rlen == 0). Hard errors still abort, while a partial
read now waits for the rest of the data.

diff --git a/core/chunked.c b/core/chunked.c
index fe693aad4..1b4af07a3 100644
Thomas Goirand <zigo@debian.org> yes debian 2026-10-02

All known versions for source package 'uwsgi'

Links