Welcome! Log In Create A New Profile

Advanced

[nginx] SPDY: fixed off_t/size_t type conversions on 32 bits pla...

Valentin Bartenev
January 15, 2014 04:34AM
details: http://hg.nginx.org/nginx/rev/9d1479234f3c
branches:
changeset: 5517:9d1479234f3c
user: Valentin Bartenev <vbart@nginx.com>
date: Wed Jan 15 13:23:31 2014 +0400
description:
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:

src/http/ngx_http_spdy_filter_module.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)

diffs (40 lines):

diff -r 439d05a037a3 -r 9d1479234f3c src/http/ngx_http_spdy_filter_module.c
--- a/src/http/ngx_http_spdy_filter_module.c Wed Jan 15 01:44:52 2014 +0400
+++ b/src/http/ngx_http_spdy_filter_module.c Wed Jan 15 13:23:31 2014 +0400
@@ -35,8 +35,7 @@ static ngx_inline ngx_int_t ngx_http_spd
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_
*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_
}

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_

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;

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] SPDY: fixed off_t/size_t type conversions on 32 bits pla...

Valentin Bartenev 900 January 15, 2014 04:34AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 139
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready