Skip to content

Commit

Permalink
Fixed bug #73730 (textdomain(null) throws in strict mode)
Browse files Browse the repository at this point in the history
The $text_domain parameter may be NULL, which we have to cater to
explicitly with regard to strict_types.
  • Loading branch information
cmb69 committed Sep 10, 2017
1 parent 3fd08a1 commit 4b746fc
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
3 changes: 3 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
8 changes: 4 additions & 4 deletions ext/gettext/gettext.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
16 changes: 16 additions & 0 deletions ext/gettext/tests/bug73730.phpt
Original file line number Diff line number Diff line change
@@ -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===

0 comments on commit 4b746fc

Please sign in to comment.