Fixed bug #73730 (textdomain(null) throws in strict mode)

The $text_domain parameter may be NULL, which we have to cater to
explicitly with regard to strict_types.
This commit is contained in:
Christoph M. Becker 2017-09-10 18:39:29 +02:00
parent 3fd08a1595
commit 4b746fce1c
3 changed files with 23 additions and 4 deletions

3
NEWS
View File

@ -21,6 +21,9 @@ PHP NEWS
. Fixed bug #75124 (gdImageGrayScale() may produce colors). (cmb)
. Fixed bug #75139 (libgd/gd_interpolation.c:1786: suspicious if ?). (cmb)
- Gettext:
. Fixed bug #73730 (textdomain(null) throws in strict mode). (cmb)
- Intl:
. Fixed bug #75090 (IntlGregorianCalendar doesn't have constants from parent
class). (tpunt)

View File

@ -161,16 +161,16 @@ PHP_MINFO_FUNCTION(php_gettext)
Set the textdomain to "domain". Returns the current domain */
PHP_NAMED_FUNCTION(zif_textdomain)
{
char *domain, *domain_name, *retval;
size_t domain_len;
char *domain = NULL, *domain_name, *retval;
size_t domain_len = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &domain, &domain_len) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s!", &domain, &domain_len) == FAILURE) {
return;
}
PHP_GETTEXT_DOMAIN_LENGTH_CHECK
if (strcmp(domain, "") && strcmp(domain, "0")) {
if (domain != NULL && strcmp(domain, "") && strcmp(domain, "0")) {
domain_name = domain;
} else {
domain_name = NULL;

View File

@ -0,0 +1,16 @@
--TEST--
Bug #73730 (textdomain(null) throws in strict mode)
--SKIPIF--
<?php
if (!extension_loaded('gettext')) die('skip gettext extension is not available');
?>
--FILE--
<?php
declare(strict_types=1);
var_dump(textdomain(null));
?>
===DONE===
--EXPECT--
string(8) "messages"
===DONE===