You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Dean Gaudet <dg...@arctic.org> on 1998/01/08 03:29:11 UTC

[PATCH] make mod_include use ap_cpystrn

The safe_copy() routine was put in there to ease the 1.2 version during
the security patch.  Ditch it in favour of the fancy new ap_cpystrn(). 

Dean

Index: modules/standard/mod_include.c
===================================================================
RCS file: /export/home/cvs/apachen/src/modules/standard/mod_include.c,v
retrieving revision 1.61
diff -u -r1.61 mod_include.c
--- mod_include.c	1998/01/07 22:24:11	1.61
+++ mod_include.c	1998/01/08 02:25:19
@@ -97,12 +97,6 @@
 #define SIZEFMT_KMG 1
 
 
-static ap_inline void safe_copy(char *dest, const char *src, size_t max_len)
-{
-    strncpy(dest, src, max_len - 1);
-    dest[max_len - 1] = '\0';
-}
-
 /* ------------------------ Environment function -------------------------- */
 
 static void add_include_vars(request_rec *r, char *timefmt)
@@ -366,7 +360,7 @@
                 GET_CHAR(in, c, NULL, p);
             } while (isspace(c));
             if (c == '>') {
-                safe_copy(tag, "done", tagbuf_len);
+                ap_cpystrn(tag, "done", tagbuf_len);
                 return tag;
             }
         }
@@ -1574,7 +1568,7 @@
             rputs("     Evaluate string\n", r);
 #endif
             parse_string(r, current->token.value, buffer, sizeof(buffer), 0);
-	    safe_copy(current->token.value, buffer, sizeof(current->token.value));
+	    ap_cpystrn(current->token.value, buffer, sizeof(current->token.value));
             current->value = (current->token.value[0] != '\0');
             current->done = 1;
             current = current->parent;
@@ -1598,7 +1592,7 @@
                 case token_string:
                     parse_string(r, current->left->token.value,
                                  buffer, sizeof(buffer), 0);
-                    safe_copy(current->left->token.value, buffer,
+                    ap_cpystrn(current->left->token.value, buffer,
                             sizeof(current->left->token.value));
 		    current->left->value = (current->left->token.value[0] != '\0');
                     current->left->done = 1;
@@ -1613,7 +1607,7 @@
                 case token_string:
                     parse_string(r, current->right->token.value,
                                  buffer, sizeof(buffer), 0);
-                    safe_copy(current->right->token.value, buffer,
+                    ap_cpystrn(current->right->token.value, buffer,
                             sizeof(current->right->token.value));
 		    current->right->value = (current->right->token.value[0] != '\0');
                     current->right->done = 1;
@@ -1660,11 +1654,11 @@
             }
             parse_string(r, current->left->token.value,
                          buffer, sizeof(buffer), 0);
-            safe_copy(current->left->token.value, buffer,
+            ap_cpystrn(current->left->token.value, buffer,
 			sizeof(current->left->token.value));
             parse_string(r, current->right->token.value,
                          buffer, sizeof(buffer), 0);
-            safe_copy(current->right->token.value, buffer,
+            ap_cpystrn(current->right->token.value, buffer,
 			sizeof(current->right->token.value));
             if (current->right->token.value[0] == '/') {
                 int len;
@@ -1725,11 +1719,11 @@
             }
             parse_string(r, current->left->token.value,
                          buffer, sizeof(buffer), 0);
-            safe_copy(current->left->token.value, buffer,
+            ap_cpystrn(current->left->token.value, buffer,
 			sizeof(current->left->token.value));
             parse_string(r, current->right->token.value,
                          buffer, sizeof(buffer), 0);
-            safe_copy(current->right->token.value, buffer,
+            ap_cpystrn(current->right->token.value, buffer,
 			sizeof(current->right->token.value));
 #ifdef DEBUG_INCLUDE
             rvputs(r, "     Compare (", current->left->token.value,
@@ -2056,8 +2050,8 @@
     int printing;
     int conditional_status;
 
-    safe_copy(error, DEFAULT_ERROR_MSG, sizeof(error));
-    safe_copy(timefmt, DEFAULT_TIME_FORMAT, sizeof(timefmt));
+    ap_cpystrn(error, DEFAULT_ERROR_MSG, sizeof(error));
+    ap_cpystrn(timefmt, DEFAULT_TIME_FORMAT, sizeof(timefmt));
     sizefmt = SIZEFMT_KMG;
 
 /*  Turn printing on */