1
0
mirror of https://github.com/php/php-src.git synced 2026-04-25 17:08:14 +02:00
Commit Graph

874 Commits

Author SHA1 Message Date
Niels Dossche 87abd500e3 Fix 32-bit fileinfo (#13404)
libmagic 5.45 has a regression on 32-bit that is fixed in current HEAD,
but that's not released yet. Pull in the upstream fix [1].

[1] https://github.com/file/file/commit/218fdf813fd5ccecbb8887a1b62509cd1c6dd3a1
2024-02-15 20:47:49 +01:00
Niels Dossche be34b96975 Merge branch 'PHP-8.3'
* PHP-8.3:
  Fix GH-13344: finfo::buffer(): Failed identify data 0:(null)
2024-02-13 21:21:07 +01:00
Niels Dossche e71b597f4d Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix GH-13344: finfo::buffer(): Failed identify data 0:(null)
2024-02-13 21:15:37 +01:00
Niels Dossche c2b671cb1b Fix GH-13344: finfo::buffer(): Failed identify data 0:(null)
Credits to ranvis for finding the upstream commit that fixes the issue.

This backports https://github.com/file/file/commit/029b82459eff7074425cfcbda7c3ce07bb9ce32d

Closes GH-13370.
2024-02-13 21:13:43 +01:00
Niels Dossche b7c5813c98 Update libmagic to 5.45 (#13369)
* Update libmagic to 5.45

This also cleans up magicdata.patch: changes that are already in upstream file
were removed from that patch file.

There are five (expected) test output changes.
All these were also checked with the file command.

  - bug77961.phpt changes because there's now an early error-return in the
    `if (ts == FILE_BADSIZE) {` branch.
  - cve-2014-1943.phpt and cve-2014-1943-mb.phpt change because now the crafted
    data is recognised as a simh file.
  - bug71434.phpt now properly recognises it as a Python file.
  - ext/fileinfo/tests/finfo_file_basic.phpt more specific mime type.

* Adjust memory requirement for s390x fileinfo run

The larger database causes a higher memory usage.
Similar to 962c082a5b.

* [ci skip] NEWS
2024-02-13 21:11:57 +01:00
Peter Kokot 801787d51d Simplify strcasestr check in fileinfo (#13365)
The strcasestr is not present on Windows and on Solaris 10 until Solaris
11 implementation in string.h.

At this point strcasestr is not used in the bundled libmagic (file)
library due to patch removing the strcasestr usage in file.c, however
future libmagic version bump might need it again. This simplifies the
strcasestr check if available on the system without running the test
code and avoiding the unknown issue when cross-compiling. If found, the
HAVE_STRCASESTR is defined, otherwise the strcasestr.c is added to the
build sources.
2024-02-10 15:11:48 +01:00
David CARLIER b8f10decb3 ZEND_ELEMENT_COUNT usage reduction. (#13324)
clang 18 is going to be released and in the meantime the counted_by
attribute usage had been constrained to true flexible arrays,
typical cases such as type name[1] ZEND_ELEMENT_COUNT(size) no longer
build.
2024-02-04 19:09:15 +00:00
Niels Dossche 642e11140c Minor pcre optimizations (#12923)
* Update signature of pcre API

This changes the variables that are bools to actually be bools instead
of ints, which allows some additional optimization by the compiler (e.g.
removing some ternaries and move extensions).

It also gets rid of the use_flags argument because that's just the same
as flags == 0. This reduces the call frame.

* Use zend_string_release_ex where possible

* Remove duplicate symbols from strchr

* Avoid useless value conversions

* Use a raw HashTable* instead of a zval

* Move condition

* Make for loop cheaper by reusing a recently used value as start iteration index

* Remove useless condition

This can't be true if the second condition is true because it would
require the string to occupy the entire address space.

* Upgrading + remark
2023-12-11 19:43:26 +01:00
David CARLIER cc2bf11951 zend: introducing ZEND_ELEMENT_COUNT for struct's dynamic arrays. (#12650)
zend: introducing ZEND_ELEMENT_COUNT for struct's dynamic and flexible arrays.

It is mostly for ubsan and helping array bound checking.
2023-11-13 12:42:45 +00:00
Anatol Belski bd24c56207 fileinfo: Backport svg detection patch
This patch is a port of 1f5bea34 and adds a port for 5.43 based
branches. The related test is unchanged.

Signed-off-by: Anatol Belski <ab@php.net>
2023-09-30 18:22:14 +02:00
Anatol Belski 4b22cb213a Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  fileinfo: Backport svg detection patch
2023-09-30 16:26:24 +02:00
usarise 1f5bea3452 fileinfo: Backport svg detection patch 2023-09-30 16:17:03 +02:00
Anatol Belski 292e10b14b fileinfo: Add test for xz type
Ref: #11298

Signed-off-by: Anatol Belski <ab@php.net>
2023-07-01 18:37:53 +02:00
Anatol Belski 97f0d97d2a fileinfo: Backport xz detection patch
Upstream: https://github.com/file/file/commit/9b0459afab309a82aa4e46f73a4e50dd641f3d39

Fixes: #11298

Signed-off-by: Anatol Belski <ab@php.net>
2023-07-01 18:02:46 +02:00
Anatol Belski 86f79b299e fileinfo: Backport xz detection fix
Upstream: https://github.com/file/file/commit/9b0459afab309a82aa4e46f73a4e50dd641f3d39

Fixes: #11298

Signed-off-by: Anatol Belski <ab@php.net>
2023-07-01 17:58:38 +02:00
Niels Dossche b0ba368d53 Fix GH-11408: Unable to build PHP 8.3.0 alpha 1 / fileinfo extension
On some configurations, the COMPILE_DL_FILEINFO must come from the
config.h file. If the COMPILE_DL_FILEINFO macro is not set, the build
won't include the ZEND_GET_MODULE block necessary for building this
extension as a shared object.

Closes GH-11505.
2023-06-23 17:43:52 +02:00
Ilija Tovilo 9d5f2f1343 Use new ZSTR_INIT_LITERAL macro (#10879) 2023-03-20 16:19:05 +01:00
Máté Kocsis 7936c8085e Fix GH-8329 Print true/false instead of bool in error and debug messages (#8385) 2023-01-23 10:52:14 +01:00
Anatol Belski 3c602fdf67 libmagic: Keep the WS limitation piece
Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 21:00:03 +02:00
Anatol Belski 1b39d4c6d2 libmagic: Further simplify diff
Avoid displaced lines where not necessary, use include guard and don't
change called function names.

Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 20:48:35 +02:00
Anatol Belski 962c082a5b fileinfo: Fix expected values for test on s390x
The peak memory usage increased by the blanket 1mb on s390 only.
This is good to note but otherwise seems acceptable, so just
adjusting the test is fine.

Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 19:57:41 +02:00
Anatol Belski bb6b41c3b1 Revert "fileinfo: tests: Disable times sensitive tests on debug build"
This reverts commit cab2f05f5a.
2022-10-02 18:39:54 +02:00
Anatol Belski 78b6f0d255 fileinfo: libmagic: Update libmagic.patch
[ci skip]

Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 18:26:06 +02:00
Anatol Belski 5c9cb24aa0 libmagic: Follow up fixes for 5.43
Fixes possible build and runtime issues on Windows.`

Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 16:11:50 +02:00
Anatol Belski 25bb817804 fileinfo: libmagic: Simplify libmagic patch
For the time being, the new args passing pre-compiled regex are cut out.
On the PHP side, PCRE patterns are cached and thus a duplicated
mechanism isn't necessary.

There might be still advantages to carry pre-compiled patterns for
libmagic separately, but reusing this mechanism needs a better
consideration, as it might require to retain from the PHP internal pattern
caching mechanism.

Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 03:02:47 +02:00
Anatol Belski a4280d23dd fileinfo: tests: Sync more upstream tests and fix phpt
Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 03:02:47 +02:00
Anatol Belski a3dd514d4d fileinfo: Introduce php_libmagic.* to simplify patch
Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 03:02:47 +02:00
Anatol Belski a24727a5ca fileinfo: libmagic: Apply libmagic.patch
Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 03:02:46 +02:00
Anatol Belski 6219d7fbc6 fileinfo: libmagic: Check in unpatched 5.43
Signed-off-by: Anatol Belski <ab@php.net>
2022-10-02 03:02:46 +02:00
Anatol Belski fbe73ff5b2 Merge branch 'PHP-8.2'
* PHP-8.2:
  fileinfo: tests: Disable times sensitive tests on debug build
2022-09-25 20:44:50 +02:00
Anatol Belski 50fc9970f3 Merge branch 'PHP-8.1' into PHP-8.2 2022-09-25 20:44:16 +02:00
Anatol Belski cab2f05f5a fileinfo: tests: Disable times sensitive tests on debug build
Signed-off-by: Anatol Belski <ab@php.net>
2022-09-25 20:43:31 +02:00
Anatol Belski 3021da54be Merge branch 'PHP-8.2'
* PHP-8.2:
  fileinfo: magic: Backport mime type support for woff/woff2 fonts
2022-09-18 14:44:42 +02:00
Anatol Belski 796fdb4bcc Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  fileinfo: magic: Backport mime type support for woff/woff2 fonts
2022-09-18 14:44:00 +02:00
Anatol Belski 34fa65a6c2 fileinfo: magic: Backport mime type support for woff/woff2 fonts
Upstream patch: https://github.com/file/file/commit/7a821aedc144f70ec848ea632a64db74b79563c1

Fixes GH-8805.

Signed-off-by: Anatol Belski <ab@php.net>
(cherry picked from commit 8a2ebe069148909a00739c83e9bcc031734bf826)
2022-09-18 14:39:12 +02:00
Ilija Tovilo 12b9196042 Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix cleaup of fileinfo test
2022-09-14 22:19:55 +02:00
Ilija Tovilo 52850a4c0f Fix cleaup of fileinfo test 2022-09-14 22:18:59 +02:00
Bob Weinand a01dd9feda Revert "Port all internally used classes to use default_object_handlers"
This reverts commit 94ee4f9834.

The commit was a bit too late to be included in PHP 8.2 RC1. Given it's a massive ABI break, we decide to postpone the change to PHP 8.3.
2022-09-14 11:13:23 +02:00
Bob Weinand 94ee4f9834 Port all internally used classes to use default_object_handlers
Signed-off-by: Bob Weinand <bobwei9@hotmail.com>
2022-08-31 16:45:27 +02:00
Máté Kocsis b4ec3e9bc0 Do not generate CONST_CS when registering constants (#9439) 2022-08-28 08:27:19 +02:00
Michael Voříšek 60189aa96a Skip locale tests /w musl libc (#9141) 2022-07-25 23:56:14 +01:00
Máté Kocsis e328c68305 Rename @cname to @cvalue in stubs (#9043)
@cname currently refers to the constant name in C. However, it is not always a (constant) name, but sometimes a function invocation, so naming it as @cvalue would be more appropriate.
2022-07-19 15:11:42 +02:00
Stanislav Malyshev b2f692a9f8 Merge branch 'PHP-8.1' 2022-07-05 00:59:43 -06:00
Christoph M. Becker ca6d511fa5 Fix #81723: Memory corruption in finfo_buffer()
We need to use the same memory allocator throughout.
2022-07-05 00:44:00 -06:00
Pierrick Charron 6fd2b39397 Indent with TAB in .h files generated by gen_stub 2022-06-13 08:55:54 -04:00
Máté Kocsis debd38f851 Add support for sensitive parameters in stubs 2022-06-04 18:15:05 +02:00
Máté Kocsis d457519b65 Declare ext/fileinfo constants in stubs (#8701) 2022-06-04 10:22:09 +02:00
George Peter Banyard d08451b2ca Replace php_stdint.h header with standard headers (#8613) 2022-05-29 11:20:56 +01:00
David Carlier 45e623da26 libmagic: use php_memnstr instead of memmem
Closes GH-8391.
2022-05-23 10:57:44 +02:00
George Peter Banyard 2ecd46f48f Initialise zend_stat_t to fix MSAN build 2022-05-22 16:06:27 +01:00