fix SSL connection issues on platforms with 32-bit off_t
patch by Maxim Dounin
diff --git a/src/core/ngx_config.h b/src/core/ngx_config.h
index ab73079..9762b18 100644
--- a/src/core/ngx_config.h
+++ b/src/core/ngx_config.h
@@ -127,5 +127,7 @@
#define NGX_MAX_UINT32_VALUE (uint32_t) 0xffffffff
#endif
+#define NGX_MAX_INT32_VALUE (uint32_t) 0x7fffffff
+
#endif /* _NGX_CONFIG_H_INCLUDED_ */
diff --git a/src/event/ngx_event_openssl.c b/src/event/ngx_event_openssl.c
index 2971817..692f506 100644
--- a/src/event/ngx_event_openssl.c
+++ b/src/event/ngx_event_openssl.c
@@ -986,10 +986,10 @@
}
- /* the maximum limit size is the maximum uint32_t value - the page size */
+ /* the maximum limit size is the maximum int32_t value - the page size */
- if (limit == 0 || limit > (off_t) (NGX_MAX_UINT32_VALUE - ngx_pagesize)) {
- limit = NGX_MAX_UINT32_VALUE - ngx_pagesize;
+ if (limit == 0 || limit > (off_t) (NGX_MAX_INT32_VALUE - ngx_pagesize)) {
+ limit = NGX_MAX_INT32_VALUE - ngx_pagesize;
}
buf = c->ssl->buf;