diff options
author | Vladimir Homutov <vl@nginx.com> | 2020-06-08 11:40:34 +0300 |
---|---|---|
committer | Vladimir Homutov <vl@nginx.com> | 2020-06-08 11:40:34 +0300 |
commit | 58d1412f0df08a90cc4df9bb3e5fb8a550daf63e (patch) | |
tree | 964e150f245910c0b07b32b35b78d80abe89cb45 /src/os/unix | |
parent | 2d4f04bba0613292d8b51bf0de959e88afc72c54 (diff) | |
download | nginx-58d1412f0df08a90cc4df9bb3e5fb8a550daf63e.tar.gz nginx-58d1412f0df08a90cc4df9bb3e5fb8a550daf63e.zip |
Stream: fixed processing of zero length UDP packets (ticket #1982).
Diffstat (limited to 'src/os/unix')
-rw-r--r-- | src/os/unix/ngx_udp_sendmsg_chain.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/os/unix/ngx_udp_sendmsg_chain.c b/src/os/unix/ngx_udp_sendmsg_chain.c index 5399c7916..3d1d6dde4 100644 --- a/src/os/unix/ngx_udp_sendmsg_chain.c +++ b/src/os/unix/ngx_udp_sendmsg_chain.c @@ -189,6 +189,13 @@ ngx_udp_output_chain_to_iovec(ngx_iovec_t *vec, ngx_chain_t *in, ngx_log_t *log) return cl; } + /* zero-sized datagram; pretend to have at least 1 iov */ + if (n == 0) { + iov = &vec->iovs[n++]; + iov->iov_base = NULL; + iov->iov_len = 0; + } + vec->count = n; vec->size = total; |