diff --git a/main/snprintf.c b/main/snprintf.c index ce3377252d5dc..c7adbc7d0790b 100644 --- a/main/snprintf.c +++ b/main/snprintf.c @@ -738,9 +738,15 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / #endif break; case 'p': - fmt++; - modifier = LM_PHP_INT_T; + { + char __next = *(fmt+1); + if ('d' == __next || 'u' == __next || 'x' == __next || 'o' == __next) { + zend_error_noreturn(E_CORE_ERROR, + "printf \"p\" modifier is no longer supported, use ZEND_LONG_FMT"); + } + modifier = LM_STD; break; + } case 'h': fmt++; if (*fmt == 'h') { @@ -803,9 +809,6 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / i_num = (wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - i_num = (wide_int) va_arg(ap, zend_ulong); - break; } /* * The rest also applies to other integer formats, so fall @@ -849,9 +852,6 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / i_num = (wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - i_num = (wide_int) va_arg(ap, zend_long); - break; } } s = ap_php_conv_10(i_num, (*fmt) == 'u', &is_negative, @@ -898,9 +898,6 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / ui_num = (u_wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - ui_num = (u_wide_int) va_arg(ap, zend_ulong); - break; } s = ap_php_conv_p2(ui_num, 3, *fmt, &num_buf[NUM_BUF_SIZE], &s_len); FIX_PRECISION(adjust_precision, precision, s, s_len); @@ -940,9 +937,6 @@ static int format_converter(register buffy * odp, const char *fmt, va_list ap) / ui_num = (u_wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - ui_num = (u_wide_int) va_arg(ap, zend_ulong); - break; } s = ap_php_conv_p2(ui_num, 4, *fmt, &num_buf[NUM_BUF_SIZE], &s_len); FIX_PRECISION(adjust_precision, precision, s, s_len); diff --git a/main/snprintf.h b/main/snprintf.h index 2ecc9a8159583..b0d824a5ae933 100644 --- a/main/snprintf.h +++ b/main/snprintf.h @@ -129,7 +129,6 @@ typedef enum { LM_SIZE_T, LM_LONG, LM_LONG_DOUBLE, - LM_PHP_INT_T } length_modifier_e; #ifdef PHP_WIN32 diff --git a/main/spprintf.c b/main/spprintf.c index fc4cb4512ee65..ce760569f3a31 100644 --- a/main/spprintf.c +++ b/main/spprintf.c @@ -338,16 +338,16 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_ modifier = LM_SIZE_T; #endif break; - case 'p': { - char __next = *(fmt+1); - if ('d' == __next || 'u' == __next || 'x' == __next || 'o' == __next) { - fmt++; - modifier = LM_PHP_INT_T; - } else { - modifier = LM_STD; - } + case 'p': + { + char __next = *(fmt+1); + if ('d' == __next || 'u' == __next || 'x' == __next || 'o' == __next) { + zend_error_noreturn(E_CORE_ERROR, + "printf \"p\" modifier is no longer supported, use ZEND_LONG_FMT"); } + modifier = LM_STD; break; + } case 'h': fmt++; if (*fmt == 'h') { @@ -410,9 +410,6 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_ i_num = (wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - i_num = (wide_int) va_arg(ap, zend_ulong); - break; } /* * The rest also applies to other integer formats, so fall @@ -456,9 +453,6 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_ i_num = (wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - i_num = (wide_int) va_arg(ap, zend_long); - break; } } s = ap_php_conv_10(i_num, (*fmt) == 'u', &is_negative, @@ -504,9 +498,6 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_ ui_num = (u_wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - ui_num = (u_wide_int) va_arg(ap, zend_ulong); - break; } s = ap_php_conv_p2(ui_num, 3, *fmt, &num_buf[NUM_BUF_SIZE], &s_len); @@ -547,9 +538,6 @@ static void xbuf_format_converter(void *xbuf, bool is_char, const char *fmt, va_ ui_num = (u_wide_int) va_arg(ap, ptrdiff_t); break; #endif - case LM_PHP_INT_T: - ui_num = (u_wide_int) va_arg(ap, zend_ulong); - break; } s = ap_php_conv_p2(ui_num, 4, *fmt, &num_buf[NUM_BUF_SIZE], &s_len);