Commit graph

874 commits

Author SHA1 Message Date
Niels Dossche
2d3ac4e2ed
Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix NULL deref on high modification key
2025-04-16 11:41:33 +02:00
Niels Dossche
bfa2cfc9ed
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix NULL deref on high modification key
2025-04-16 11:38:38 +02:00
Niels Dossche
c905d59106
Fix NULL deref on high modification key
We should re-index in the loop.

Closes GH-18331.
2025-04-16 11:37:49 +02:00
Remi Collet
e65fbe1bb8
Merge branch 'PHP-8.4'
* PHP-8.4:
  NEWS for GH-17940
  NEWS for GH-17940
  Fix #17776 LDAP_OPT_X_TLS_REQUIRE_CERT can't be overridden
2025-04-10 17:14:21 +02:00
Remi Collet
bcee2af398
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  NEWS for GH-17940
  Fix #17776 LDAP_OPT_X_TLS_REQUIRE_CERT can't be overridden
2025-04-10 17:13:37 +02:00
Remi Collet
389de7c6bf
Fix #17776 LDAP_OPT_X_TLS_REQUIRE_CERT can't be overridden 2025-04-10 17:07:15 +02:00
Niels Dossche
a2ac800ab8
Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-18015: Error messages for ldap_mod_replace are confusing
2025-03-15 00:51:28 +01:00
Niels Dossche
6717947ffe
Fix GH-18015: Error messages for ldap_mod_replace are confusing
Closes GH-18053.
2025-03-15 00:42:07 +01:00
Calvin Buckley
3677871347
Use pkg-config for ext/ldap without a directory (#17441)
* Use pkg-config for ext/ldap without a directory

The existing check is not very good. OpenLDAP has been shipping a
pkg-config file for a while now, and that's preferable over trying to
manually find it.

Note that for older OpenLDAP or non-OpenLDAP implementations, a
directory can still be passed to use the old logic. Note that Oracle
LDAP is busted and going away soon; I'm not sure for other LDAP
implementations.

Tested on macOS 14.

* Convert added ifs to AS_IF
2025-02-28 14:39:31 -04:00
Niels Dossche
459fc9de78
Merge branch 'PHP-8.4'
* PHP-8.4:
  Fix GH-17704: ldap_search fails when $attributes contains a non-packed array with numerical keys
2025-02-06 23:31:46 +01:00
Niels Dossche
e3a23069c9
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Fix GH-17704: ldap_search fails when $attributes contains a non-packed array with numerical keys
2025-02-06 23:31:30 +01:00
Niels Dossche
2fb88b2d80
Fix GH-17704: ldap_search fails when $attributes contains a non-packed array with numerical keys
Closes GH-17710.
2025-02-06 23:31:01 +01:00
Gina Peter Banyard
cc3a729995 ext/ldap: Fix FCC is initialized condition 2025-01-09 16:42:58 +00:00
Gina Peter Banyard
915feea12d
ext/ldap: Use FCC for rebind_proc callback (#17369) 2025-01-08 20:52:33 +00:00
Niels Dossche
726c96fbef
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Backport fix GH-17280: ldap_search() fails when $attributes array has holes
2024-12-29 12:19:33 +01:00
Niels Dossche
26f3bec63e
Backport fix GH-17280: ldap_search() fails when $attributes array has holes
Backport of GH-17284 to fix GH-17280 on lower branches.

Closes GH-17287.
2024-12-29 12:19:05 +01:00
Niels Dossche
f90323c8d4
Fix GH-17280: ldap_search() fails when $attributes array has holes (#17284)
We relax the constraint that the array must be a list. What really
matters is that it only has numeric keys. As shown in the example code,
it's really easy to accidentally create a non-list array, so it makes
sense to relax the constraint.
There are 3 cases left where the array is checked to be a list,
in php_ldap_do_search, but I believe this makes sense to keep because
the indices of those arrays have a meaning because they should match
between different arrays. In that case it will prevent programmer
errors.
2024-12-27 17:58:50 +01:00
Jakub Zelenka
4b211a7769
Merge branch 'PHP-8.4' 2024-11-20 11:14:32 +01:00
Jakub Zelenka
7c96af42b7
Merge branch 'PHP-8.3' into PHP-8.4 2024-11-20 11:14:04 +01:00
Jakub Zelenka
ffff27f734
Merge branch 'PHP-8.2' into PHP-8.3 2024-11-20 11:12:19 +01:00
Niels Dossche
fba659abb9
Fix GHSA-g665-fm4p-vhff: OOB access in ldap_escape 2024-11-20 11:06:12 +01:00
Ilija Tovilo
93c9c7c5c1
[skip ci] Update to ubuntu 24.04 for asan in nightly 2024-11-07 22:05:54 +01:00
Christoph M. Becker
59fe79fb45
Merge branch 'PHP-8.4'
* PHP-8.4:
  Skip tests if ldap_set_rebind_proc() is not available
2024-11-07 13:24:33 +01:00
Christoph M. Becker
6b754d9e81
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Skip tests if ldap_set_rebind_proc() is not available
2024-11-07 13:24:00 +01:00
Christoph M. Becker
fb6d500457
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Skip tests if ldap_set_rebind_proc() is not available
2024-11-07 13:22:54 +01:00
Christoph M. Becker
d276ea54f4
Skip tests if ldap_set_rebind_proc() is not available
This is already done by ldap_set_rebind_proc_error.phpt, but not by the
other two affected tests.

Closes GH-16708.
2024-11-07 13:22:17 +01:00
Niels Dossche
497dbaa2df
Fix GH-16389: Assertion failure in ext/ldap/ldap.c:2718 (#16392) 2024-10-12 13:19:23 +02:00
Gina Peter Banyard
e01cde7b1b ext/ldap: Pass a HashTable directly to parse individual control
Rename function to not have a leading "_" at the same time
2024-10-05 12:48:59 +01:00
Gina Peter Banyard
d7f946d28b ext/ldap: Use bool instead of int 2024-10-05 12:48:59 +01:00
Gina Peter Banyard
f60487821d ext/ldap: Remove an unnecessary duplication 2024-10-05 12:48:59 +01:00
Gina Peter Banyard
636b6a1a59 ext/ldap: Parse attribute value via new API in do_modify
Add a new API to free a zend_string via its char*
2024-10-05 12:48:59 +01:00
Gina Peter Banyard
495837bfa9 ext/ldap: Add API parsing zval to LDAP value 2024-10-05 12:48:59 +01:00
Gina Peter Banyard
524f6dfb19 ext/ldap: Use zend_string_equals() API 2024-10-02 23:22:34 +01:00
Gina Peter Banyard
355f320a27 ext/ldap: Use HashTable* for controls 2024-10-02 23:22:34 +01:00
Gina Peter Banyard
e8e4d36bc9 ext/ldap: Rename variable and move closer to usage site 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
0733e90c7f ext/ldap: Check that array key is not empty 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
72ee812e2a ext/ldap: Check array key does not have any nul bytes 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
d34d015078 ext/ldap: Promote warning to ValueError if array is not a dict 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
127968b1e4 ext/ldap: Refactor loop to a HASH_FOREACH loop 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
34e9d9ee41 ext/ldap: Zero out arrays and traverse them as NULL terminated list 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
304a514863 ext/ldap: Use HASH_FOREACH macro 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
8a9aa08de7 ext/ldap: Reduce scope of variables 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
db57561479 ext/ldap: Check that attribute values is a list before traversal 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
9e91810807 ext/ldap: Ensure list of attribute values is not empty 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
09ffa28224 ext/ldap: Handle attribute => value case directly 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
08bf506953 ext/ldap: php_ldap_do_modify() throw ValueError when entries array is empty 2024-10-01 19:57:47 +01:00
Gina Peter Banyard
3a2a86b525 ext/ldap: Add tests for php_ldap_do_modify()
And also amend some existing tests which would duplicate coverage
2024-10-01 19:57:47 +01:00
Gina Peter Banyard
a6d111ff2a
Merge branch 'PHP-8.4'
* PHP-8.4:
  NEWS entries for LDAP bug fixes
  ext/ldap: Fix GH-16136 (Memory leak in php_ldap_do_modify())
  ext/ldap: Fix GH-16132 (Freeing pointer not allocated by ZMM)
2024-09-30 22:24:45 +01:00
Gina Peter Banyard
747860ccf0
Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  NEWS entries for LDAP bug fixes
  ext/ldap: Fix GH-16136 (Memory leak in php_ldap_do_modify())
  ext/ldap: Fix GH-16132 (Freeing pointer not allocated by ZMM)
2024-09-30 22:24:39 +01:00
Gina Peter Banyard
10b5d4beb5
Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  NEWS entries for LDAP bug fixes
  ext/ldap: Fix GH-16136 (Memory leak in php_ldap_do_modify())
  ext/ldap: Fix GH-16132 (Freeing pointer not allocated by ZMM)
2024-09-30 22:24:08 +01:00