Please review the attached patch which avoids an unnecessary strlen
call (in the NSAPI plugin for PHP) by using php_register_variable_safe
instead of php_register_variable.

thanks,
arvi
diff -r 64f24a22f518 sapi/nsapi/nsapi.c
--- a/sapi/nsapi/nsapi.c        Wed Aug 26 17:33:06 2009 +0530
+++ b/sapi/nsapi/nsapi.c        Thu Aug 27 17:26:55 2009 +0530
@@ -746,21 +746,16 @@
                                efree(value);
                        }
                } else {
-                       php_register_variable("REQUEST_URI", 
SG(request_info).request_uri, track_vars_array TSRMLS_CC);
+                       php_register_variable_safe("REQUEST_URI", 
SG(request_info).request_uri, pos, track_vars_array TSRMLS_CC);
                }
 
-               if (value = nsapi_strdup(SG(request_info).request_uri)) {
-                       if (rc->path_info) {
-                               pos = strlen(SG(request_info).request_uri) - 
strlen(rc->path_info);
-                               if (pos>=0) {
-                                       value[pos] = '\0';
-                               } else {
-                                       value[0]='\0';
-                               }
+               if (rc->path_info) {
+                       pos -= strlen(rc->path_info);
+                       if (pos<0) {
+                               pos = 0;
                        }
-                       php_register_variable("SCRIPT_NAME", value, 
track_vars_array TSRMLS_CC);
-                       nsapi_free(value);
                }
+               php_register_variable_safe("SCRIPT_NAME", value, pos, 
track_vars_array TSRMLS_CC);
        }
        php_register_variable("SCRIPT_FILENAME", 
SG(request_info).path_translated, track_vars_array TSRMLS_CC);
 
-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to