aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2014-01-15 13:23:31 +0400
committerValentin Bartenev <vbart@nginx.com>2014-01-15 13:23:31 +0400
commitd143119e3cb939b69cb77d5bce6ac37f16e7c197 (patch)
treedb861c047582d70114a1ab840e88fbff44aef0b1 /src
parent70c010167f7f65e7b7a1f936cbf125baaf84fb7f (diff)
downloadnginx-d143119e3cb939b69cb77d5bce6ac37f16e7c197.tar.gz
nginx-d143119e3cb939b69cb77d5bce6ac37f16e7c197.zip
SPDY: fixed off_t/size_t type conversions on 32 bits platforms.
Parameters of ngx_http_spdy_filter_get_shadow() are changed from size_t to off_t since the last call of the function may get size and offset from the rest of a file buffer. This fixes possible data loss rightfully complained by MSVC on 32 bits systems where off_t is 8 bytes long while size_t is only 4 bytes. The other two type casts are needed just to suppress warnings about possible data loss also complained by MSVC but false positive in these cases.
Diffstat (limited to 'src')
-rw-r--r--src/http/ngx_http_spdy_filter_module.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/http/ngx_http_spdy_filter_module.c b/src/http/ngx_http_spdy_filter_module.c
index 5d45ebc1b..7a7559ee8 100644
--- a/src/http/ngx_http_spdy_filter_module.c
+++ b/src/http/ngx_http_spdy_filter_module.c
@@ -35,8 +35,7 @@ static ngx_inline ngx_int_t ngx_http_spdy_filter_send(
ngx_connection_t *fc, ngx_http_spdy_stream_t *stream);
static ngx_chain_t *ngx_http_spdy_filter_get_shadow(
- ngx_http_spdy_stream_t *stream, ngx_buf_t *buf, size_t offset,
- size_t size);
+ ngx_http_spdy_stream_t *stream, ngx_buf_t *buf, off_t offset, off_t size);
static ngx_http_spdy_out_frame_t *ngx_http_spdy_filter_get_data_frame(
ngx_http_spdy_stream_t *stream, size_t len, ngx_chain_t *first,
ngx_chain_t *last);
@@ -702,7 +701,7 @@ ngx_http_spdy_send_chain(ngx_connection_t *fc, ngx_chain_t *in, off_t limit)
*ln = cl;
ln = &cl->next;
- rest -= size;
+ rest -= (size_t) size;
in = in->next;
if (in == NULL) {
@@ -752,7 +751,7 @@ ngx_http_spdy_send_chain(ngx_connection_t *fc, ngx_chain_t *in, off_t limit)
}
if (limit < (off_t) slcf->chunk_size) {
- frame_size = limit;
+ frame_size = (size_t) limit;
}
}
}
@@ -777,7 +776,7 @@ ngx_http_spdy_send_chain(ngx_connection_t *fc, ngx_chain_t *in, off_t limit)
static ngx_chain_t *
ngx_http_spdy_filter_get_shadow(ngx_http_spdy_stream_t *stream, ngx_buf_t *buf,
- size_t offset, size_t size)
+ off_t offset, off_t size)
{
ngx_buf_t *chunk;
ngx_chain_t *cl;