Skip to content

Conversation

@hakre
Copy link
Owner

@hakre hakre commented Nov 10, 2024

...

cmb69 and others added 30 commits November 7, 2024 13:22
This is already done by ldap_set_rebind_proc_error.phpt, but not by the
other two affected tests.

Closes phpGH-16708.
* PHP-8.2:
  Skip tests if ldap_set_rebind_proc() is not available
* PHP-8.3:
  Skip tests if ldap_set_rebind_proc() is not available
* PHP-8.4:
  Skip tests if ldap_set_rebind_proc() is not available
Relative paths are passed to the ioutils APIs, these are not properly
converted to long paths.  If the path length already exceeds a given
threshold (usually 259 characters, but only 247 for `mkdir()`), the
long path prefix is prepended, resulting in an invalid path, since long
paths have to be absolute.  If the path length does not exceed that
threshold, no conversion to a long path is done, although that may be
necessary.

Thus we take the path length of the current working directory into
account when checking the threshold, and prepend it to the filename if
necessary.

Since this is only relevant for NTS builds, and using the current
working directory of the process would be erroneous for ZTS builds, we
skip the new code for ZTS builds.

Closes phpGH-16687.
We should only attempt to fetch the current filename for user constants. dl()
may attempt to register internal constants after execution has already started,
thus incorrectly linking the user file invoking dl().

See phpGH-16663
Among other things, this test tries to run too few and too many rounds
of SHA256. In both cases, it is expecting an error, but that behavior
depends on the implementation:

  * PHP's own implementation raises an error in either case
  * libxcrypt raises an error in either case
  * Older versions of glibc would clamp the number of rounds
    to a valid amount (newer versions don't have libcrypt)
  * Musl libc clamps values that are too low, but raises an error
    for values that are too high

If PHP is built with --with-external-libcrypt, the musl implementation
above can be used. Even if libxcrypt is installed, PHP will notice
that no additional -lfoo flags are needed to use the crypt
implementation in musl. To pass on such a system, we must not test
for the "too few rounds" behavior.
Musl's crypt() implementation of DES tries to handle invalid salts and
can make this test fail because it returns an answer and not an
error. Even musl however will reject a salt with a ':' in it, so we
can make this test cross-platform by supplying an even less valid
salt.
Musl's crypt() returns "*" to indicate failure in contrast with the
"*0" returned by PHP/libxcrypt. This causes test failures, but more
importantly, is a pretty silly thing to expect the user to know.
This commit catches the musl value and turns it into "*0".
It triggered allocation overflow which, even fixed, in turn gives memory
leak on 32 bits but the allocator relies on signed integers.

close phpGH-15915
For rename_variation12.phpt this is actually not necessary, since there
is no rename_variation11.phpt, but we still fix it to be in sync with
rename_variation12-win32.phpt which actually is prone to parallel
conflicts.

(cherry picked from commit d4263dd)
* PHP-8.2:
  Fix rename_variation12*.phpt parallel test conflicts
* PHP-8.3:
  Fix rename_variation12*.phpt parallel test conflicts
* PHP-8.4:
  Fix rename_variation12*.phpt parallel test conflicts
Choosing here to shrink the requested allocation to its max value.
This was meant only for master. 8.4 should still use 22.04.
ndossche and others added 10 commits November 9, 2024 17:08
* PHP-8.2:
  Fix phpGH-16695: phar:// tar parser and zero-length file header blocks
* PHP-8.3:
  Fix phpGH-16695: phar:// tar parser and zero-length file header blocks
* PHP-8.4:
  Fix phpGH-16695: phar:// tar parser and zero-length file header blocks
* PHP-8.2:
  [ci skip] Add credit for test
* PHP-8.3:
  [ci skip] Add credit for test
* PHP-8.4:
  [ci skip] Add credit for test
Since the return value is never used, the only difference between using this
method and using `object_init_ex()` directly is the flipped order of
parameters, and the added level of indirection - remove that level of
indirection by replacing its uses.
The list of pathnames/patterns was the same.

Try because IIRC ms-gh-actions support it, but try first.
Most likely this effectively by $BREW_OPT only for "openlap".

Could also levitate as otherwise commented was an issue specifically to
brew (homebrew?!.)

Previously (recently) failing jobs in Push:

- MACOS_X64_DEBUG_NTS
- MACOS_ARM64_DEBUG_NTS
@hakre hakre closed this Nov 16, 2024
@hakre hakre deleted the macos-ci-counter branch November 23, 2024 08:37
hakre pushed a commit that referenced this pull request Apr 9, 2025
```
ext/gd/libgd/gd.c:2275:14: runtime error: signed integer overflow: 2147483647 + 1 cannot be represented in type 'int'
    #0 0x5d6a2103e1db in php_gd_gdImageCopy /home/dcarlier/Contribs/php-src/ext/gd/libgd/gd.c:2275
    #1 0x5d6a210a2b63 in gdImageCrop /home/dcarlier/Contribs/php-src/ext/gd/libgd/gd_crop.c:57
    #2 0x5d6a21018ca4 in zif_imagecrop /home/dcarlier/Contribs/php-src/ext/gd/gd.c:3575
    php#3 0x5d6a21e46e7a in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER /home/dcarlier/Contribs/php-src/Zend/zend_vm_execute.h:1337
    php#4 0x5d6a221188da in execute_ex /home/dcarlier/Contribs/php-src/Zend/zend_vm_execute.h:57246
    php#5 0x5d6a221366bd in zend_execute /home/dcarlier/Contribs/php-src/Zend/zend_vm_execute.h:61634
    php#6 0x5d6a21d107a6 in zend_execute_scripts /home/dcarlier/Contribs/php-src/Zend/zend.c:1895
    php#7 0x5d6a21a63409 in php_execute_script /home/dcarlier/Contribs/php-src/main/main.c:2529
    php#8 0x5d6a22516d5e in do_cli /home/dcarlier/Contribs/php-src/sapi/cli/php_cli.c:966
    php#9 0x5d6a2251981d in main /home/dcarlier/Contribs/php-src/sapi/cli/php_cli.c:1341
    php#10 0x7f10d002a3b7 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    php#11 0x7f10d002a47a in __libc_start_main_impl ../csu/libc-start.c:360
    php#12 0x5d6a20a06da4 in _start (/home/dcarlier/Contribs/php-src/sapi/cli/php+0x2806da4) (BuildId: d9a79c7e0e4872311439d7313cb3a81fe04190a2)
```

close phpGH-18006
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment