]> git.kaiwu.me - nginx.git/commitdiff
Win32: fixed some warnings reported by Borland C.
authorMaxim Dounin <mdounin@mdounin.ru>
Sat, 24 Dec 2016 15:01:14 +0000 (18:01 +0300)
committerMaxim Dounin <mdounin@mdounin.ru>
Sat, 24 Dec 2016 15:01:14 +0000 (18:01 +0300)
Most notably, warning W8012 (comparing signed and unsigned values) reported
in multiple places where an unsigned value of small type (e.g., u_short) is
promoted to an int and compared to an unsigned value.

Warning W8072 (suspicious pointer arithmetic) disabled, it is reported
when we increment base pointer in ngx_shm_alloc().

src/core/ngx_resolver.c
src/http/modules/ngx_http_sub_filter_module.c
src/http/ngx_http_file_cache.c
src/mail/ngx_mail_smtp_module.c
src/os/win32/ngx_win32_config.h

index f179b64aaf0e50179b207c22a7f333f2d642385f..2065f75a02ca49f3e3ea44e173ed9580b4cb41cd 100644 (file)
@@ -780,7 +780,7 @@ ngx_resolve_name_locked(ngx_resolver_t *r, ngx_resolver_ctx_t *ctx,
 #endif
 
         if (rn->nsrvs) {
-            for (i = 0; i < rn->nsrvs; i++) {
+            for (i = 0; i < (ngx_uint_t) rn->nsrvs; i++) {
                 if (rn->u.srvs[i].name.data) {
                     ngx_resolver_free_locked(r, rn->u.srvs[i].name.data);
                 }
@@ -2959,7 +2959,7 @@ ngx_resolver_resolve_srv_names(ngx_resolver_ctx_t *ctx, ngx_resolver_node_t *rn)
         ngx_del_timer(ctx->event);
     }
 
-    for (i = 0; i < rn->nsrvs; i++) {
+    for (i = 0; i < (ngx_uint_t) rn->nsrvs; i++) {
         srvs[i].name.data = ngx_resolver_alloc(r, rn->u.srvs[i].name.len);
         if (srvs[i].name.data == NULL) {
             goto failed;
@@ -4077,7 +4077,7 @@ ngx_resolver_free_node(ngx_resolver_t *r, ngx_resolver_node_t *rn)
 #endif
 
     if (rn->nsrvs) {
-        for (i = 0; i < rn->nsrvs; i++) {
+        for (i = 0; i < (ngx_uint_t) rn->nsrvs; i++) {
             if (rn->u.srvs[i].name.data) {
                 ngx_resolver_free_locked(r, rn->u.srvs[i].name.data);
             }
@@ -4206,10 +4206,10 @@ ngx_resolver_export(ngx_resolver_t *r, ngx_resolver_node_t *rn,
                 d = 0;
             }
 
-            if (j == rn->naddrs) {
+            if (j == (ngx_uint_t) rn->naddrs) {
                 j = 0;
             }
-        } while (++i < rn->naddrs);
+        } while (++i < (ngx_uint_t) rn->naddrs);
     }
 
 #if (NGX_HAVE_INET6)
index e8d1d801d64bc1a341acf0cb24a0183fc2beb81a..de58c6f13438b6ea584d54d6ef44f6d8aab3bfaa 100644 (file)
@@ -645,7 +645,7 @@ ngx_http_sub_parse(ngx_http_request_t *r, ngx_http_sub_ctx_t *ctx,
 
         start = offset - (ngx_int_t) tables->min_match_len + 1;
 
-        i = ngx_max(tables->index[c], ctx->index);
+        i = ngx_max((ngx_uint_t) tables->index[c], ctx->index);
         j = tables->index[c + 1];
 
         while (i != j) {
@@ -978,7 +978,7 @@ ngx_http_sub_init_tables(ngx_http_sub_tables_t *tables,
         }
 
         c = match[i].match.data[tables->min_match_len - 1];
-        while (ch <= c) {
+        while (ch <= (ngx_uint_t) c) {
             tables->index[ch++] = (u_char) i;
         }
     }
index 3c8ad7dab086fab4ff05d6cb8da1bf522b28012f..a5a9300ac632a71c260e48e430d9331b51edabcd 100644 (file)
@@ -553,7 +553,7 @@ ngx_http_file_cache_read(ngx_http_request_t *r, ngx_http_cache_t *c)
         return NGX_DECLINED;
     }
 
-    if (h->crc32 != c->crc32 || h->header_start != c->header_start) {
+    if (h->crc32 != c->crc32 || (size_t) h->header_start != c->header_start) {
         ngx_log_error(NGX_LOG_CRIT, r->connection->log, 0,
                       "cache file \"%s\" has md5 collision", c->file.name.data);
         return NGX_DECLINED;
@@ -1495,8 +1495,8 @@ ngx_http_file_cache_update_header(ngx_http_request_t *r)
     if (h.version != NGX_HTTP_CACHE_VERSION
         || h.last_modified != c->last_modified
         || h.crc32 != c->crc32
-        || h.header_start != c->header_start
-        || h.body_start != c->body_start)
+        || (size_t) h.header_start != c->header_start
+        || (size_t) h.body_start != c->body_start)
     {
         ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
                        "http file cache \"%s\" content changed",
index f03bd907e9b440e3e7b9320f9cd32d6263f3eabf..3b5a2d8f315400987d4fdc73966bed2fdbf32c28 100644 (file)
@@ -280,7 +280,7 @@ ngx_mail_smtp_merge_srv_conf(ngx_conf_t *cf, void *parent, void *child)
 
     p = ngx_cpymem(p, conf->capability.data, conf->capability.len);
 
-    p = ngx_cpymem(p, "250 STARTTLS" CRLF, sizeof("250 STARTTLS" CRLF) - 1);
+    ngx_memcpy(p, "250 STARTTLS" CRLF, sizeof("250 STARTTLS" CRLF) - 1);
 
     p = conf->starttls_capability.data
         + (last - conf->capability.data) + 3;
index ecdf6ad07c04c9e1199d0bc5f1929a3bfb02bee8..c5e26dcbd98fa63bfbff12ef81da990b5fa798a8 100644 (file)
@@ -119,6 +119,9 @@ typedef long  time_t;
 /* unreferenced formal parameter */
 #pragma warn -8057
 
+/* suspicious pointer arithmetic */
+#pragma warn -8072
+
 #endif