diff options
Diffstat (limited to 'ext/phar/phar_path_check.re')
-rwxr-xr-x | ext/phar/phar_path_check.re | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/ext/phar/phar_path_check.re b/ext/phar/phar_path_check.re deleted file mode 100755 index 6702cdd68d..0000000000 --- a/ext/phar/phar_path_check.re +++ /dev/null @@ -1,101 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | phar php single-file executable PHP extension | - +----------------------------------------------------------------------+ - | Copyright (c) 2007 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.01 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_01.txt. | - | If you did not receive a copy of the PHP license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@php.net so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Marcus Boerger <helly@php.net> | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - -#include "phar_internal.h" - -phar_path_check_result phar_path_check(char **s, int *len, const char **error) -{ - const unsigned char *p = (const unsigned char*)*s; - const unsigned char *m; - - if (*len == 1 && *p == '.') { - *error = "current directory reference"; - return pcr_err_curr_dir; - } else if (*len == 2 && p[0] == '.' && p[1] == '.') { - *error = "upper directory reference"; - return pcr_err_up_dir; - } - -#define YYCTYPE unsigned char -#define YYCURSOR p -#define YYLIMIT p+*len -#define YYMARKER m -#define YYFILL(n) - -loop: -/*!re2c -END = "\x00"; -ILL = [\x01-\x19\x80-\xFF]; -EOS = "/" | END; -ANY = .; -"//" { - *error = "double slash"; - return pcr_err_double_slash; - } -"/.." EOS { - *error = "upper directory reference"; - return pcr_err_up_dir; - } -"/." EOS { - *error = "current directory reference"; - return pcr_err_curr_dir; - } -"\\" { - *error = "back-slash"; - return pcr_err_back_slash; - } -"/" END { - *error = "empty directory"; - return pcr_err_empty_entry; - } -"*" { - *error = "star"; - return pcr_err_star; - } -"?" { - if (**s == '/') { - (*s)++; - } - *len = (p - (const unsigned char*)*s) -1; - *error = NULL; - return pcr_use_query; - } -ILL { - *error ="illegal character"; - return pcr_err_illegal_char; - } -END { - if (**s == '/') { - (*s)++; - (*len)--; - } - if ((p - (const unsigned char*)*s) - 1 != *len) - { - *error ="illegal character"; - return pcr_err_illegal_char; - } - *error = NULL; - return pcr_is_ok; - } -ANY { - goto loop; - } -*/ -} |