tony2001 Mon Feb 19 20:01:18 2007 UTC Modified files: /php-src/sapi/cgi README.FastCGI cgi_main.c Log: MFB: Eliminate strcat() usage Fixed handling of argv[] for GET http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/README.FastCGI?r1=1.5&r2=1.6&diff_format=u Index: php-src/sapi/cgi/README.FastCGI diff -u php-src/sapi/cgi/README.FastCGI:1.5 php-src/sapi/cgi/README.FastCGI:1.6 --- php-src/sapi/cgi/README.FastCGI:1.5 Mon Jul 24 12:15:28 2006 +++ php-src/sapi/cgi/README.FastCGI Mon Feb 19 20:01:17 2007 @@ -69,7 +69,7 @@ Don't load mod_php, by the way. Make sure it is commented out! - #LoadModule php5_module /usr/lib/apache/2.0/libphp5.so + #LoadModule php6_module /usr/lib/apache/2.0/libphp6.so Now, we'll create a fcgi-bin directory, just like you would do with normal CGI scripts. You'll need to create a directory somewhere to store your http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.311&r2=1.312&diff_format=u Index: php-src/sapi/cgi/cgi_main.c diff -u php-src/sapi/cgi/cgi_main.c:1.311 php-src/sapi/cgi/cgi_main.c:1.312 --- php-src/sapi/cgi/cgi_main.c:1.311 Mon Feb 19 14:13:35 2007 +++ php-src/sapi/cgi/cgi_main.c Mon Feb 19 20:01:17 2007 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: cgi_main.c,v 1.311 2007/02/19 14:13:35 dmitry Exp $ */ +/* $Id: cgi_main.c,v 1.312 2007/02/19 20:01:17 tony2001 Exp $ */ #include "php.h" #include "php_globals.h" @@ -836,11 +836,11 @@ env_script_name = pt + l; /* PATH_TRANSATED = DOCUMENT_ROOT + PATH_INFO */ - path_translated_len = l + strlen(env_path_info) + 2; - path_translated = (char *) emalloc(path_translated_len); - *path_translated = 0; - strncat(path_translated, env_document_root, l); - strcat(path_translated, env_path_info); + path_translated_len = l + strlen(env_path_info); + path_translated = (char *) emalloc(path_translated_len + 1); + memcpy(path_translated, env_document_root, l); + memcpy(path_translated + l, env_path_info, (path_translated_len - l)); + path_translated[path_translated_len] = '\0'; if (orig_path_translated) { _sapi_cgibin_putenv("ORIG_PATH_TRANSLATED", orig_path_translated TSRMLS_CC); } @@ -851,13 +851,13 @@ ) { /* PATH_TRANSATED = PATH_TRANSATED - SCRIPT_NAME + PATH_INFO */ int ptlen = strlen(pt) - strlen(env_script_name); - int path_translated_len = ptlen + strlen(env_path_info) + 2; + int path_translated_len = ptlen + strlen(env_path_info); char *path_translated = NULL; - path_translated = (char *) emalloc(path_translated_len); - *path_translated = 0; - strncat(path_translated, pt, ptlen); - strcat(path_translated, env_path_info); + path_translated = (char *) emalloc(path_translated_len + 1); + memcpy(path_translated, pt, ptlen); + memcpy(path_translated + ptlen, env_path_info, path_translated_len - ptlen); + path_translated[path_translated_len] = '\0'; if (orig_path_translated) { _sapi_cgibin_putenv("ORIG_PATH_TRANSLATED", orig_path_translated TSRMLS_CC); } @@ -1559,17 +1559,22 @@ test.php v1=test "v2=hello world!" */ if (!SG(request_info).query_string && argc > php_optind) { + int slen = strlen(PG(arg_separator).input); len = 0; for (i = php_optind; i < argc; i++) { - len += strlen(argv[i]) + 1; + if (i < (argc - 1)) { + len += strlen(argv[i]) + slen; + } else { + len += strlen(argv[i]); + } } - s = malloc(len + 1); + s = malloc(++len + 1); *s = '\0'; /* we are pretending it came from the environment */ - for (i = php_optind, len = 0; i < argc; i++) { - strcat(s, argv[i]); + for (i = php_optind; i < argc; i++) { + strlcat(s, argv[i], len); if (i < (argc - 1)) { - strcat(s, PG(arg_separator).input); + strlcat(s, PG(arg_separator).input, len); } } SG(request_info).query_string = s;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php