summaryrefslogtreecommitdiff
path: root/sapi
diff options
context:
space:
mode:
Diffstat (limited to 'sapi')
-rw-r--r--sapi/phpdbg/phpdbg_bp.c21
-rw-r--r--sapi/phpdbg/phpdbg_lexer.c2
-rw-r--r--sapi/phpdbg/phpdbg_lexer.l2
-rw-r--r--sapi/phpdbg/phpdbg_utils.c2
-rw-r--r--sapi/phpdbg/tests/exceptions_003.phpt4
-rw-r--r--sapi/phpdbg/tests/info_001.phpt2
6 files changed, 20 insertions, 13 deletions
diff --git a/sapi/phpdbg/phpdbg_bp.c b/sapi/phpdbg/phpdbg_bp.c
index da4c8f71bf..d4a2d70c86 100644
--- a/sapi/phpdbg/phpdbg_bp.c
+++ b/sapi/phpdbg/phpdbg_bp.c
@@ -25,6 +25,7 @@
#include "phpdbg_utils.h"
#include "phpdbg_opcode.h"
#include "zend_globals.h"
+#include "ext/standard/php_string.h"
ZEND_EXTERN_MODULE_GLOBALS(phpdbg)
@@ -135,10 +136,12 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */
switch (brake->type) {
case PHPDBG_BREAK_FILE: {
+ zend_string *filename = php_addcslashes(zend_string_init(((phpdbg_breakfile_t*)brake)->filename, strlen(((phpdbg_breakfile_t*)brake)->filename), 0), 1, "\\\"\n", 3);
phpdbg_asprintf(&new_str,
- "%sbreak %s:%lu\n", *str,
- ((phpdbg_breakfile_t*)brake)->filename,
+ "%sbreak \"%s\":%lu\n", *str,
+ ZSTR_VAL(filename),
((phpdbg_breakfile_t*)brake)->line);
+ zend_string_release(filename);
} break;
case PHPDBG_BREAK_SYM: {
@@ -170,10 +173,12 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */
} break;
case PHPDBG_BREAK_FILE_OPLINE: {
+ zend_string *filename = php_addcslashes(zend_string_init(((phpdbg_breakopline_t*)brake)->class_name, strlen(((phpdbg_breakopline_t*)brake)->class_name), 0), 1, "\\\"\n", 3);
phpdbg_asprintf(&new_str,
- "%sbreak %s:#%llu\n", *str,
- ((phpdbg_breakopline_t*)brake)->class_name,
+ "%sbreak \"%s\":#%llu\n", *str,
+ filename,
((phpdbg_breakopline_t*)brake)->opline_num);
+ zend_string_release(filename);
} break;
case PHPDBG_BREAK_OPCODE: {
@@ -199,12 +204,14 @@ PHPDBG_API void phpdbg_export_breakpoints_to_string(char **str) /* {{{ */
conditional->code);
break;
- case FILE_PARAM:
+ case FILE_PARAM: {
+ zend_string *filename = php_addcslashes(zend_string_init(conditional->param.file.name, strlen(conditional->param.file.name), 0), 1, "\\\"\n", 3);
phpdbg_asprintf(&new_str,
- "%sbreak at %s:%lu if %s\n", *str,
+ "%sbreak at \"%s\":%lu if %s\n", *str,
conditional->param.file.name, conditional->param.file.line,
conditional->code);
- break;
+ zend_string_release(filename);
+ } break;
default: { /* do nothing */ } break;
}
diff --git a/sapi/phpdbg/phpdbg_lexer.c b/sapi/phpdbg/phpdbg_lexer.c
index d93c66f94d..74cad5b8f2 100644
--- a/sapi/phpdbg/phpdbg_lexer.c
+++ b/sapi/phpdbg/phpdbg_lexer.c
@@ -534,7 +534,7 @@ yy39:
#line 161 "sapi/phpdbg/phpdbg_lexer.l"
{
phpdbg_init_param(yylval, STR_PARAM);
- yylval->str = estrndup(yytext + (*yytext == '\'' || *yytext == '\"'), yyleng - unescape_string(yytext));
+ yylval->str = estrndup(yytext, yyleng - unescape_string(yytext));
yylval->len = yyleng;
return T_ID;
}
diff --git a/sapi/phpdbg/phpdbg_lexer.l b/sapi/phpdbg/phpdbg_lexer.l
index 820eac7f84..422cda4f2c 100644
--- a/sapi/phpdbg/phpdbg_lexer.l
+++ b/sapi/phpdbg/phpdbg_lexer.l
@@ -160,7 +160,7 @@ INPUT ("\\"[#"']|["]("\\\\"|"\\"["]|[^\n\000"])+["]|[']("\\"[']|"\\\\"|[^\
<NORMAL>{GENERIC_ID} {
phpdbg_init_param(yylval, STR_PARAM);
- yylval->str = estrndup(yytext + (*yytext == '\'' || *yytext == '\"'), yyleng - unescape_string(yytext));
+ yylval->str = estrndup(yytext, yyleng - unescape_string(yytext));
yylval->len = yyleng;
return T_ID;
}
diff --git a/sapi/phpdbg/phpdbg_utils.c b/sapi/phpdbg/phpdbg_utils.c
index 642c1dec63..684a5a37b5 100644
--- a/sapi/phpdbg/phpdbg_utils.c
+++ b/sapi/phpdbg/phpdbg_utils.c
@@ -819,7 +819,7 @@ char *phpdbg_short_zval_print(zval *zv, int maxlen) /* {{{ */
break;
case IS_STRING: {
int i;
- zend_string *str = php_addcslashes(Z_STR_P(zv), 0, "\\\"", 2);
+ zend_string *str = php_addcslashes(Z_STR_P(zv), 0, "\\\"\n\t\0", 5);
for (i = 0; i < ZSTR_LEN(str); i++) {
if (ZSTR_VAL(str)[i] < 32) {
ZSTR_VAL(str)[i] = ' ';
diff --git a/sapi/phpdbg/tests/exceptions_003.phpt b/sapi/phpdbg/tests/exceptions_003.phpt
index ab26bb4b9d..51090c081a 100644
--- a/sapi/phpdbg/tests/exceptions_003.phpt
+++ b/sapi/phpdbg/tests/exceptions_003.phpt
@@ -20,7 +20,7 @@ prompt> [L0 %s HANDLE_EXCEPTION
>00005: x();
00006: } finally {
00007: print "ok\n";
-prompt> [L7 %s ECHO "ok " %s]
+prompt> [L7 %s ECHO "ok\n" %s]
>00007: print "ok\n";
00008: }
00009: } catch (Error $e) {
@@ -30,7 +30,7 @@ prompt> ok
>00005: x();
00006: } finally {
00007: print "ok\n";
-prompt> [L10 %s ECHO "caught " %s]
+prompt> [L10 %s ECHO "caught\n" %s]
>00010: print "caught\n";
00011: }
00012:
diff --git a/sapi/phpdbg/tests/info_001.phpt b/sapi/phpdbg/tests/info_001.phpt
index b988235757..2f38fd36af 100644
--- a/sapi/phpdbg/tests/info_001.phpt
+++ b/sapi/phpdbg/tests/info_001.phpt
@@ -32,7 +32,7 @@ prompt> string(4) "test"
00017:
prompt> [Variables in foo() (1)]
Address Refs Type Variable
-%s 1 string $baz
+%s %d string $baz
string (4) "test"
prompt> [Superglobal variables (8)]
Address Refs Type Variable