]> granicus.if.org Git - php/commitdiff
MFB
authorIlia Alshanetsky <iliaa@php.net>
Tue, 29 May 2007 00:01:14 +0000 (00:01 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 29 May 2007 00:01:14 +0000 (00:01 +0000)
ext/filter/logical_filters.c
sapi/cgi/cgi_main.c

index 64ef9ecb8473ec0412a5031eb41c493c992869c4..704a0102eba38b4f9dd7ec93b148b52a8204efcf 100644 (file)
@@ -473,7 +473,7 @@ void php_filter_validate_url(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
 void php_filter_validate_email(PHP_INPUT_FILTER_PARAM_DECL) /* {{{ */
 {
        /* From http://cvs.php.net/co.php/pear/HTML_QuickForm/QuickForm/Rule/Email.php?r=1.4 */
-       const char regexp[] = "/^((\\\"[^\\\"\\f\\n\\r\\t\\b]+\\\")|([\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+(\\.[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+)*))@((\\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\\-])+\\.)+[A-Za-z\\-]+))$/";
+       const char regexp[] = "/^((\\\"[^\\\"\\f\\n\\r\\t\\b]+\\\")|([\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+(\\.[\\w\\!\\#\\$\\%\\&\\'\\*\\+\\-\\~\\/\\^\\`\\|\\{\\}]+)*))@((\\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\\-])+\\.)+[A-Za-z\\-]+))$/D";
 
        pcre       *re = NULL;
        pcre_extra *pcre_extra = NULL;
index a96bc5ef7cd712c64838f6cc8fa1ba6548fb21da..9f271a5534d993142a4cc51128f681cc8dad461c 100644 (file)
@@ -801,8 +801,8 @@ static void init_request_info(TSRMLS_D)
                                                 * out what SCRIPT_NAME should be
                                                 */
                                                int slen = len - strlen(pt);
-                                               int pilen = strlen(env_path_info);
-                                               char *path_info = env_path_info + pilen - slen;
+                                               int pilen = env_path_info ? strlen(env_path_info) : 0;
+                                               char *path_info = env_path_info ? env_path_info + pilen - slen : NULL;
 
                                                if (orig_path_info != path_info) {
                                                        if (orig_path_info) {
@@ -842,10 +842,12 @@ static void init_request_info(TSRMLS_D)
                                                        env_script_name = pt + l;
 
                                                        /* PATH_TRANSATED = DOCUMENT_ROOT + PATH_INFO */
-                                                       path_translated_len = l + strlen(env_path_info);
+                                                       path_translated_len = l + (env_path_info ? strlen(env_path_info) : 0);
                                                        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));
+                                                       if (env_path_info) {
+                                                               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);
@@ -857,12 +859,14 @@ static void init_request_info(TSRMLS_D)
                                                ) {
                                                        /* 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);
+                                                       int path_translated_len = ptlen + env_path_info ? strlen(env_path_info) : 0;
                                                        char *path_translated = NULL;
 
                                                        path_translated = (char *) emalloc(path_translated_len + 1);
                                                        memcpy(path_translated, pt, ptlen);
-                                                       memcpy(path_translated + ptlen, env_path_info, path_translated_len - ptlen);
+                                                       if (env_path_info) {
+                                                               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);