]> granicus.if.org Git - php/commitdiff
Replace memcpy and sprintf with smart_strs.
authorSascha Schumann <sas@php.net>
Tue, 13 Mar 2001 17:14:47 +0000 (17:14 +0000)
committerSascha Schumann <sas@php.net>
Tue, 13 Mar 2001 17:14:47 +0000 (17:14 +0000)
sapi/thttpd/thttpd.c

index 8d6ec9d885007af55bf1272a030f605b00a4742c..a99526adc40b78ad389554bf1a35038aaef2a831 100644 (file)
@@ -24,6 +24,8 @@
 #include "php_variables.h"
 #include "version.h"
 
+#include "ext/standard/php_smart_str.h"
+
 #include <sys/uio.h>
 
 typedef struct {
@@ -257,30 +259,24 @@ static void thttpd_module_main(TLS_D SLS_DC)
 
 static void thttpd_request_ctor(TLS_D SLS_DC)
 {
-       char *cp;
-       size_t cp_len;
        char buf[1024];
        int offset;
        size_t filename_len;
        size_t cwd_len;
-
+       smart_str s = {0};
 
        SG(request_info).query_string = TG(hc)->query?strdup(TG(hc)->query):NULL;
 
-       filename_len = strlen(TG(hc)->expnfilename);
-       cwd_len = strlen(TG(hc)->hs->cwd);
-
-       cp_len = cwd_len + filename_len;
-       cp = (char *) malloc(cp_len + 1);
-       /* cwd always ends in "/", so this is safe */
-       memcpy(cp, TG(hc)->hs->cwd, cwd_len);
-       memcpy(cp + cwd_len, TG(hc)->expnfilename, filename_len);
-       cp[cp_len] = '\0';
-       
-       SG(request_info).path_translated = cp;
+       smart_str_appends_ex(&s, TG(hc)->hs->cwd, 1);
+       smart_str_appends_ex(&s, TG(hc)->expnfilename, 1);
+       smart_str_0(&s);
+       SG(request_info).path_translated = s.c;
        
-       snprintf(buf, 1023, "/%s", TG(hc)->origfilename);
-       SG(request_info).request_uri = strdup(buf);
+       s.c = NULL;
+       smart_str_appendc_ex(&s, '/', 1);
+       smart_str_appends_ex(&s, TG(hc)->origfilename, 1);
+       smart_str_0(&s);
+       SG(request_info).request_uri = s.c;
        SG(request_info).request_method = httpd_method_str(TG(hc)->method);
        SG(sapi_headers).http_response_code = 200;
        SG(request_info).content_type = TG(hc)->contenttype;