]> git.kaiwu.me - nginx.git/commitdiff
use memmove() in appropriate places
authorIgor Sysoev <igor@sysoev.ru>
Tue, 12 Apr 2011 08:02:46 +0000 (08:02 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Tue, 12 Apr 2011 08:02:46 +0000 (08:02 +0000)
src/core/ngx_conf_file.c
src/core/ngx_string.h
src/http/modules/ngx_http_auth_basic_module.c
src/http/modules/ngx_http_geo_module.c
src/http/modules/ngx_http_ssi_filter_module.c
src/http/ngx_http_core_module.c
src/http/ngx_http_script.c

index 83c10732947a291897e9759a0b5077931abc3448..689b7e7a21d665d86ccc116d31476eb4685cf03f 100644 (file)
@@ -507,7 +507,7 @@ ngx_conf_read_token(ngx_conf_t *cf)
             }
 
             if (len) {
-                ngx_memcpy(b->start, start, len);
+                ngx_memmove(b->start, start, len);
             }
 
             size = (ssize_t) (file_size - cf->conf_file->file.offset);
index 3f1e91e709ffe5b49685b298e871a604f1444a50..2030988d89f69c4ec0c8c6768639a3c5c415a56a 100644 (file)
@@ -135,6 +135,10 @@ ngx_copy(u_char *dst, u_char *src, size_t len)
 #endif
 
 
+#define ngx_memmove(dst, src, n)   (void) memmove(dst, src, n)
+#define ngx_movemem(dst, src, n)   (((u_char *) memmove(dst, src, n)) + (n))
+
+
 /* msvc and icc7 compile memcmp() to the inline loop */
 #define ngx_memcmp(s1, s2, n)  memcmp((const char *) s1, (const char *) s2, n)
 
index a6b95fa1d2c697a0f3999f04cdb378dddb832f79..c6b7f92f195619ef4d520e1da3fb351273bc682a 100644 (file)
@@ -248,7 +248,7 @@ ngx_http_auth_basic_handler(ngx_http_request_t *r)
 
         if (state == sw_passwd) {
             left = left + n - passwd;
-            ngx_memcpy(buf, &buf[passwd], left);
+            ngx_memmove(buf, &buf[passwd], left);
             passwd = 0;
 
         } else {
index 6ad08b9b2a8296c1af66d632ae5c59cf1f6b9e74..e60f1f4fba12f8c619faa8295dd2db32e5e8e420 100644 (file)
@@ -685,7 +685,7 @@ ngx_http_geo_add_range(ngx_conf_t *cf, ngx_http_geo_conf_ctx_t *ctx,
 
                 range = a->elts;
 
-                ngx_memcpy(&range[i + 2], &range[i + 1],
+                ngx_memmove(&range[i + 2], &range[i + 1],
                            (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t));
 
                 range[i + 1].start = (u_short) s;
@@ -724,7 +724,7 @@ ngx_http_geo_add_range(ngx_conf_t *cf, ngx_http_geo_conf_ctx_t *ctx,
 
                 range = a->elts;
 
-                ngx_memcpy(&range[i + 3], &range[i + 1],
+                ngx_memmove(&range[i + 3], &range[i + 1],
                            (a->nelts - 3 - i) * sizeof(ngx_http_geo_range_t));
 
                 range[i + 2].start = (u_short) (e + 1);
@@ -752,7 +752,7 @@ ngx_http_geo_add_range(ngx_conf_t *cf, ngx_http_geo_conf_ctx_t *ctx,
 
                 range = a->elts;
 
-                ngx_memcpy(&range[i + 1], &range[i],
+                ngx_memmove(&range[i + 1], &range[i],
                            (a->nelts - 1 - i) * sizeof(ngx_http_geo_range_t));
 
                 range[i + 1].start = (u_short) (e + 1);
@@ -776,7 +776,7 @@ ngx_http_geo_add_range(ngx_conf_t *cf, ngx_http_geo_conf_ctx_t *ctx,
 
                 range = a->elts;
 
-                ngx_memcpy(&range[i + 2], &range[i + 1],
+                ngx_memmove(&range[i + 2], &range[i + 1],
                            (a->nelts - 2 - i) * sizeof(ngx_http_geo_range_t));
 
                 range[i + 1].start = (u_short) s;
@@ -861,7 +861,7 @@ ngx_http_geo_delete_range(ngx_conf_t *cf, ngx_http_geo_conf_ctx_t *ctx,
             if (s == (ngx_uint_t) range[i].start
                 && e == (ngx_uint_t) range[i].end)
             {
-                ngx_memcpy(&range[i], &range[i + 1],
+                ngx_memmove(&range[i], &range[i + 1],
                            (a->nelts - 1 - i) * sizeof(ngx_http_geo_range_t));
 
                 a->nelts--;
index 994efc40c746cf79d4b6f0e657732813b03e0423..75a7156efc8fbc38e7cb79aef52159f8d1708549 100644 (file)
@@ -1902,7 +1902,7 @@ ngx_http_ssi_include(ngx_http_request_t *r, ngx_http_ssi_ctx_t *ctx,
 
     len = (uri->data + uri->len) - src;
     if (len) {
-        dst = ngx_copy(dst, src, len);
+        dst = ngx_movemem(dst, src, len);
     }
 
     uri->len = dst - uri->data;
index c8edf9580e5a9341508848364484673b9d081e6c..06eb0b36c0ca9b325aa27982815c7ef6b594f9a5 100644 (file)
@@ -1225,7 +1225,7 @@ ngx_http_core_try_files_phase(ngx_http_request_t *r,
             *e.pos = '\0';
 
             if (alias && ngx_strncmp(name, clcf->name.data, alias) == 0) {
-                ngx_memcpy(name, name + alias, len - alias);
+                ngx_memmove(name, name + alias, len - alias);
                 path.len -= alias;
             }
         }
index ef69155dbc48b9ed6a259bdd0ec49907d506228c..8b861ce34dc7a4e87543bef8c241349999e4da6b 100644 (file)
@@ -1089,7 +1089,7 @@ ngx_http_script_regex_end_code(ngx_http_script_engine_t *e)
                          NGX_UNESCAPE_REDIRECT);
 
         if (src < e->pos) {
-            dst = ngx_copy(dst, src, e->pos - src);
+            dst = ngx_movemem(dst, src, e->pos - src);
         }
 
         e->pos = dst;