#
4a0ec3de |
| 10-Apr-2024 |
Máté Kocsis |
Make ext/odbc default value handling more consistent (#13910) These changes are carved off from https://github.com/php/php-src/pull/12040/files. I noticed that there are some inconsistencies
Make ext/odbc default value handling more consistent (#13910) These changes are carved off from https://github.com/php/php-src/pull/12040/files. I noticed that there are some inconsistencies between odbc_fetch_object()/odbc_fetch_array(), odbc_fetch_into(), as well as odbc_fetch_row(), specifically in how they handle the $row parameter. Now, I tried to align their behaviour the following way: - I made null the default value. Previously, the default values were one of the following: -1, -1, 0, and null, respectively. - odbc_fetch_row() has been returning false indicating there is no more rows when 0 is passed as $row. Now, a warning is also emitted in this case, because the null default value is not new, because it's available since PHP 8.0. - When HAVE_SQL_EXTENDED_FETCH is not defined, the $row parameter is always ignored. Previously, some of the functions didn't accept it at all. Now a warning is emitted if the feature is not supported, but the parameter has any meaningful value (is greater than or equal to 1).
show more ...
|
#
365e2118 |
| 07-Apr-2024 |
Máté Kocsis |
Convert odbc_bindcols() function to void (#13900)
|
#
9a4847ac |
| 06-Apr-2024 |
Máté Kocsis |
Get rid of non-exposed solid_fetch_prev() function Somehow it wasn't exposed to userland.
|
#
5941cdaa |
| 13-Feb-2024 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix ZTS crashes with persistent resources in modules (#13381) On shutdown in ZTS the following happens: - https://github.com/php/php-src/blob/master/Zend/zend.c#L1124-L1125 gets ex
Fix ZTS crashes with persistent resources in modules (#13381) On shutdown in ZTS the following happens: - https://github.com/php/php-src/blob/master/Zend/zend.c#L1124-L1125 gets executed. This destroys global persistent resources and destroys the modules. Furthermore, the modules are unloaded too. - Further down, `ts_free_id(executor_globals_id)` gets executed, which calls `executor_globals_dtor`. This function destroys persistent resources for each thread. Notice that in the last step, the modules that the persistent resource belong to may already have been destroyed. This means that accessing globals will cause a crash (I previously fixed this with ifdef magic), or when the module is dynamically loaded we'll try jumping to a destructor that is no longer loaded in memory. These scenarios cause crashes. It's not possible to move the `ts_free_id` call upwards, because that may break assumptions of callers, and furthermore this would deallocate the executor globals structure, which means that any access to those will cause a segfault. This patch adds a new API to the TSRM that allows running a callback on a certain resource type. We use this API to destroy the persistent resources in all threads prior to the module destruction, and keep the rest of the resource dtor intact. I verified this fix on Apache with postgres, both dynamically and statically. Fixes GH-12974.
show more ...
|
#
77ac1e85 |
| 26-Dec-2023 |
Niels Dossche <7771979+nielsdos@users.noreply.github.com> |
Fix GH-12974: Apache crashes on shutdown when using pg_pconnect() On ZTS, the global variables are stored in dynamically allocated memory. When the module gets shut down this memory is r
Fix GH-12974: Apache crashes on shutdown when using pg_pconnect() On ZTS, the global variables are stored in dynamically allocated memory. When the module gets shut down this memory is released. After the module is shut down, only then are the persistent resources cleared. Normally this isn't an issue, but pgsql and odbc refer to the globals to modify some counters, after the globals have been freed. Fix this by guarding the modification. Closes GH-13032.
show more ...
|
#
d98a45d0 |
| 19-Dec-2023 |
David Carlier |
ext/pgsql: pgsql.allow_persistent, no need to use such large type for boolean state. also ext/odbc, simplifying odd comparison with non persistent connections. Close GH-12976
|
#
bbe12229 |
| 04-Nov-2023 |
Saki Takamachi <34942839+SakiTakamachi@users.noreply.github.com> |
Fix GH-12296: [odbc] [pdo_odbc] Optimized odbc connection string creating (#12306) Declare and initialize on one line changed to use php_memnistr store strlen(db) in a vari
Fix GH-12296: [odbc] [pdo_odbc] Optimized odbc connection string creating (#12306) Declare and initialize on one line changed to use php_memnistr store strlen(db) in a variable Added a semicolon to the end of dsn. If there is a semicolon at the end of the original dsn, it will be duplicated, so it will be removed. Add condition when authentication information is null
show more ...
|
#
5a2b2516 |
| 31-Aug-2023 |
Calvin Buckley |
Fix persistent procedural ODBC connections not getting closed Like oci8, procedural ODBC uses an apply function on the hash list to enumerate persistent connections and close the specifi
Fix persistent procedural ODBC connections not getting closed Like oci8, procedural ODBC uses an apply function on the hash list to enumerate persistent connections and close the specific one. However, this function take zvals, not resources. However, it was getting casted as such, causing it to interpret the pointer incorrectly. This could have caused other issues, but mostly manifested as failing to close the connection even fi it matched. The function now takes a zval and gets the resource from that. In addition, it also removes the cast of the function pointer and moves casting to the function body, to avoid possible confusion like this in refactors again. It also cleans up style and uses constants in the function body. Closes GH-12132 Signed-off-by: George Peter Banyard <girgias@php.net>
show more ...
|
#
a022ec53 |
| 31-Aug-2023 |
Calvin Buckley |
Fix memory leak with failed SQLPrepare Closes GH-12095 Signed-off-by: George Peter Banyard <girgias@php.net>
|
#
9dcdfa5e |
| 28-Aug-2023 |
Máté Kocsis |
Use correct format specifier
|
#
038b2ae2 |
| 08-Aug-2023 |
Máté Kocsis |
Make the $enable parameter of odbc_autocommit() nullable (#11909) Co-authored-by: George Peter Banyard <girgias@php.net>
|
Revision tags: php-8.2.0RC1, php-8.1.10 |
|
#
1ad59b32 |
| 30-Aug-2022 |
George Peter Banyard |
Update INI validator and displayers depending on INI type Closes GH-9451
|
#
03fd4054 |
| 06-Sep-2022 |
Tim Düsterhus |
Use php_info_print_table_header for actual column headers only (#9485) Using php_info_print_table_header() for "Foo: bar" looks odd and out of place, because the whole line is colored. I
Use php_info_print_table_header for actual column headers only (#9485) Using php_info_print_table_header() for "Foo: bar" looks odd and out of place, because the whole line is colored. It is also questionable from a HTML semantics point of view, because it does not described the columns that follow. The use of this across extensions is inconsistent. It was part of the skeleton, but ext/date or ext/json already use a regular row.
show more ...
|
Revision tags: php-8.0.23 |
|
#
f3a14d1b |
| 23-Aug-2022 |
Calvin Buckley |
Fix GH-9347: Current ODBC liveness checks may be inadequate We implement SQL_ATTR_CONNECTION_DEAD for ODBC and PDO_ODBC. This is semantically appropriate and should be used whenever
Fix GH-9347: Current ODBC liveness checks may be inadequate We implement SQL_ATTR_CONNECTION_DEAD for ODBC and PDO_ODBC. This is semantically appropriate and should be used whenever the driver supports it. In the event that it fails or says the connection isn't dead (which may be inaccurate in some cases), try the old heuristic. Closes GH-9353.
show more ...
|
Revision tags: php-8.0.23RC1, php-8.1.10RC1, php-8.2.0beta3, php-8.2.0beta2, php-8.1.9, php-8.0.22 |
|
#
ba9debb5 |
| 28-Jul-2022 |
Nikita Popov |
Fix parentheses warnings |
#
236fd4ce |
| 20-Jul-2022 |
Máté Kocsis |
Declare ext/odbc constants in stubs (#9045) |
Revision tags: php-8.1.9RC1, php-8.2.0beta1, php-8.0.22RC1, php-8.0.21, php-8.1.8, php-8.2.0alpha3, php-8.1.8RC1, php-8.2.0alpha2, php-8.0.21RC1 |
|
#
e7f6acd0 |
| 13-Jun-2022 |
Christoph M. Becker |
Merge branch 'PHP-8.1' * PHP-8.1: Fix handling of single-key connection strings
|
#
4b8bbfb6 |
| 13-Jun-2022 |
Christoph M. Becker |
Merge branch 'PHP-8.0' into PHP-8.1 * PHP-8.0: Fix handling of single-key connection strings
|
#
445d9502 |
| 10-Jun-2022 |
Calvin Buckley |
Fix handling of single-key connection strings A connection string may contain just a single key, but PHP used ";" as the heuristic to detect if a string was a connection string versu
Fix handling of single-key connection strings A connection string may contain just a single key, but PHP used ";" as the heuristic to detect if a string was a connection string versus plain DSN. However, a single-key connection string would get treated like a DSN name, i.e. "DSN=*LOCAL". This makes it so that "=" is used, as a connection string must contain a key. Closes GH-8748.
show more ...
|
Revision tags: php-8.0.20, php-8.1.7, php-8.2.0alpha1, php-7.4.30, php-8.1.7RC1, php-8.0.20RC1, php-8.1.6, php-8.0.19, php-8.1.6RC1, php-8.0.19RC1, php-8.0.18, php-8.1.5 |
|
#
e85b17b9 |
| 12-Apr-2022 |
Tim Düsterhus |
Mark parameter in ext/odbc as sensitive |
#
2920a266 |
| 22-Apr-2022 |
Calvin Buckley |
Quote when adding to connection string in (PDO_)ODBC Because the UID= and PWD= values are appended to the SQLDriverConnect case when credentials are passed, we have to append them to the
Quote when adding to connection string in (PDO_)ODBC Because the UID= and PWD= values are appended to the SQLDriverConnect case when credentials are passed, we have to append them to the string in case users are relying on this behaviour. However, they must be quoted, or the arguments will be invalid (or possibly more injected). This means users had to quote arguments or append credentials to the raw connection string themselves. It seems that ODBC quoting rules are consistent enough (and that Microsoft trusts them enough to encode into the .NET BCL) that we can actually check if the string is already quoted (in case a user is already quoting because of this not being fixed), and if not, apply the appropriate ODBC quoting rules. This is because the code exists in main/, and are shared between both ODBC extensions, so it doesn't make sense for it to only exist in one or the other. There may be a better spot for it. Closes GH-8307.
show more ...
|
Revision tags: php-7.4.29, php-8.1.5RC1, php-8.0.18RC1, php-8.1.4, php-8.0.17, php-8.1.4RC1, php-8.0.17RC1, php-8.1.3, php-8.0.16, php-7.4.28, php-8.1.3RC1, php-8.0.16RC1, php-8.1.2, php-8.0.15, php-8.1.2RC1, php-8.0.15RC1, php-8.0.14, php-8.1.1, php-7.4.27, php-8.1.1RC1, php-8.0.14RC1, php-7.4.27RC1, php-8.1.0, php-8.0.13, php-7.4.26, php-7.3.33, php-8.1.0RC6, php-7.4.26RC1, php-8.0.13RC1, php-8.1.0RC5, php-7.3.32, php-7.4.25, php-8.0.12, php-8.1.0RC4, php-8.0.12RC1, php-7.4.25RC1, php-8.1.0RC3, php-8.0.11, php-7.4.24, php-7.3.31, php-8.1.0RC2, php-7.4.24RC1, php-8.0.11RC1, php-8.1.0RC1, php-7.4.23, php-8.0.10, php-7.3.30, php-8.1.0beta3, php-8.0.10RC1, php-7.4.23RC1, php-8.1.0beta2, php-8.0.9, php-7.4.22, php-8.1.0beta1, php-7.4.22RC1, php-8.0.9RC1, php-8.1.0alpha3, php-7.4.21, php-7.3.29 |
|
#
aff36587 |
| 29-Jun-2021 |
Patrick Allaert |
Fixed some spaces used instead of tabs |
Revision tags: php-8.0.8, php-8.1.0alpha2, php-7.4.21RC1, php-8.0.8RC1, php-8.1.0alpha1, php-8.0.7, php-7.4.20, php-8.0.7RC1, php-7.4.20RC1 |
|
#
01b3fc03 |
| 06-May-2021 |
KsaR |
Update http->https in license (#6945) 1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https. 2. Update few license 3.0 to 3.01 as
Update http->https in license (#6945) 1. Update: http://www.php.net/license/3_01.txt to https, as there is anyway server header "Location:" to https. 2. Update few license 3.0 to 3.01 as 3.0 states "php 5.1.1, 4.1.1, and earlier". 3. In some license comments is "at through the world-wide-web" while most is without "at", so deleted. 4. fixed indentation in some files before |
show more ...
|
Revision tags: php-8.0.6, php-7.4.19 |
|
#
bd2c743f |
| 27-Apr-2021 |
Nikita Popov |
Merge branch 'PHP-8.0' * PHP-8.0: Remove incorrect format argument
|
#
9ce57769 |
| 27-Apr-2021 |
Nikita Popov |
Merge branch 'PHP-7.4' into PHP-8.0 * PHP-7.4: Remove incorrect format argument
|