NEWS 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898
  1. PHP NEWS
  2. |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  3. 27 Oct 2022, PHP 8.1.12
  4. - Core:
  5. . Fixes segfault with Fiber on FreeBSD i386 architecture. (David Carlier)
  6. - Fileinfo:
  7. . Fixed bug GH-8805 (finfo returns wrong mime type for woff/woff2 files).
  8. (Anatol)
  9. - GD:
  10. . Fixed bug #81739: OOB read due to insufficient input validation in
  11. imageloadfont(). (CVE-2022-31630) (cmb)
  12. - Hash:
  13. . Fixed bug #81738: buffer overflow in hash_update() on long parameter.
  14. (CVE-2022-37454) (nicky at mouha dot be)
  15. - MBString:
  16. - Fixed bug GH-9683 (Problem when ISO-2022-JP-MS is specified in
  17. mb_ encode_mimeheader). (Alex Dowad)
  18. - Opcache:
  19. . Added indirect call reduction for jit on x86 architectures. (wxue1)
  20. - Session:
  21. . Fixed bug GH-9583 (session_create_id() fails with user defined save handler
  22. that doesn't have a validateId() method). (Girgias)
  23. - Streams:
  24. . Fixed bug GH-9590 (stream_select does not abort upon exception or empty
  25. valid fd set). (Arnaud)
  26. 29 Sep 2022, PHP 8.1.11
  27. - Core:
  28. . Fixed bug GH-9323 (Crash in ZEND_RETURN/GC/zend_call_function)
  29. (Tim Starling)
  30. . Fixed bug GH-9361 (Segmentation fault on script exit #9379). (cmb,
  31. Christian Schneider)
  32. . Fixed bug GH-9447 (Invalid class FQN emitted by AST dump for new and class
  33. constants in constant expressions). (ilutov)
  34. . Fixed bug #81727: Don't mangle HTTP variable names that clash with ones
  35. that have a specific semantic meaning. (CVE-2022-31629). (Derick)
  36. - DOM:
  37. . Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free).
  38. (Nathan Freeman)
  39. - FPM:
  40. . Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to
  41. error_log after daemon reload). (Dmitry Menshikov)
  42. . Fixed bug #77780 ("Headers already sent..." when previous connection was
  43. aborted). (Jakub Zelenka)
  44. - GMP
  45. . Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed
  46. to gmp_init()). (Girgias)
  47. - Intl
  48. . Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter).
  49. (Girgias)
  50. - PCRE:
  51. . Fixed pcre.jit on Apple Silicon. (Niklas Keller)
  52. - PDO_PGSQL:
  53. . Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed).
  54. (Yurunsoft)
  55. - Phar:
  56. . Fixed bug #81726: phar wrapper: DOS when using quine gzip file.
  57. (CVE-2022-31628). (cmb)
  58. - Reflection:
  59. . Fixed bug GH-8932 (ReflectionFunction provides no way to get the called
  60. class of a Closure). (cmb, Nicolas Grekas)
  61. - Streams:
  62. . Fixed bug GH-9316 ($http_response_header is wrong for long status line).
  63. (cmb, timwolla)
  64. 01 Sep 2022, PHP 8.1.10
  65. - Core:
  66. . Fixed --CGI-- support of run-tests.php. (cmb)
  67. . Fixed incorrect double to long casting in latest clang. (zeriyoshi)
  68. . Fixed bug GH-9266 (GC root buffer keeps growing when dtors are present).
  69. (Michael Olšavský)
  70. - Date:
  71. . Fixed bug GH-8730 (DateTime::diff miscalculation is same time zone of
  72. different type). (Derick)
  73. . Fixed bug GH-8964 (DateTime object comparison after applying delta less
  74. than 1 second). (Derick)
  75. . Fixed bug GH-9106: (DateInterval 1.5s added to DateTimeInterface is rounded
  76. down since PHP 8.1.0). (Derick)
  77. . Fixed bug #81263 (Wrong result from DateTimeImmutable::diff). (Derick)
  78. - DBA:
  79. . Fixed LMDB driver memory leak on DB creation failure (Girgias)
  80. . Fixed bug GH-9155 (dba_open("non-existing", "c-", "flatfile") segfaults)
  81. (cmb)
  82. - IMAP:
  83. . Fixed bug GH-9309 (Segfault when connection is used after imap_close()).
  84. (cmb)
  85. - Intl:
  86. . Fixed IntlDateFormatter::formatObject() parameter type. (Gert de Pagter)
  87. - MBString:
  88. . Fixed bug GH-9008 (mb_detect_encoding(): wrong results with null $encodings).
  89. (cmb)
  90. - OPcache:
  91. . Fixed bug GH-9033 (Loading blacklist file can fail due to negative length).
  92. (cmb)
  93. . Fixed bug GH-9164 (Segfault in zend_accel_class_hash_copy).
  94. (Arnaud, Sergei Turchanov)
  95. - OpenSSL:
  96. . Fixed bug GH-9339 (OpenSSL oid_file path check warning contains
  97. uninitialized path). (Jakub Zelenka)
  98. - PDO_SQLite:
  99. . Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb)
  100. - SQLite3:
  101. . Fixed bug GH-9032 (SQLite3 authorizer crashes on NULL values). (cmb)
  102. - Streams:
  103. . Fixed bug GH-8472 (The resource returned by stream_socket_accept may have
  104. incorrect metadata). (Jakub Zelenka)
  105. . Fixed bug GH-8409 (SSL handshake timeout leaves persistent connections
  106. hanging). (Jakub Zelenka, Twosee)
  107. 04 Aug 2022, PHP 8.1.9
  108. - CLI:
  109. . Fixed potential overflow for the builtin server via the PHP_CLI_SERVER_WORKERS
  110. environment variable. (yiyuaner)
  111. - Core:
  112. . Fixed bug GH-8923 (error_log on Windows can hold the file write lock). (cmb)
  113. . Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).
  114. (Tobias Bachert)
  115. - CLI:
  116. . Fixed GH-8952 (Intentionally closing std handles no longer possible).
  117. (Arnaud, cmb)
  118. - Date:
  119. . Fixed bug #80047 (DatePeriod doesn't warn with custom DateTimeImmutable).
  120. (Derick)
  121. - FPM:
  122. . Fixed zlog message prepend, free on incorrect address. (Heiko Weber)
  123. . Fixed possible double free on configuration loading failure. (Heiko Weber).
  124. - GD:
  125. . Fixed bug GH-8848 (imagecopyresized() error refers to the wrong argument).
  126. (cmb)
  127. - Intl:
  128. . Fixed build for ICU 69.x and onwards. (David Carlier)
  129. - OPcache:
  130. . Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php
  131. syntaxe of a valid file). (Dmitry)
  132. . Fixed bug GH-8030 (Segfault with JIT and large match/switch statements).
  133. (Arnaud)
  134. - Reflection:
  135. . Fixed bug GH-8943 (Fixed Reflection::getModifiersNames() with readonly
  136. modifier). (Pierrick)
  137. . Fixed bug GH-8982 (Attribute with TARGET_METHOD is rejected on fake
  138. closure of method). (ilutov)
  139. - Standard:
  140. . Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier)
  141. . Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).
  142. . Fixed bug GH-9017 (php_stream_sock_open_from_socket could return NULL).
  143. (Heiko Weber)
  144. 07 Jul 2022, PHP 8.1.8
  145. - Core:
  146. . Fixed bug GH-8338 (Intel CET is disabled unintentionally). (Chen, Hu)
  147. . Fixed leak in Enum::from/tryFrom for internal enums when using JIT (ilutov)
  148. . Fixed calling internal methods with a static return type from
  149. extension code. (Sara)
  150. . Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1
  151. references). (Nicolas Grekas)
  152. . Fixed potential use after free in php_binary_init(). (Heiko Weber)
  153. . Fixed bug GH-7942 (Indirect mutation of readonly properties through
  154. references). (ilutov)
  155. - CLI:
  156. . Fixed GH-8827 (Intentionally closing std handles no longer possible). (cmb)
  157. - COM:
  158. . Fixed bug GH-8778 (Integer arithmethic with large number variants fails).
  159. (cmb)
  160. - Curl:
  161. . Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option. (Pierrick)
  162. - Date:
  163. . Fixed bug #72963 (Null-byte injection in CreateFromFormat and related
  164. functions). (Derick)
  165. . Fixed bug #74671 (DST timezone abbreviation has incorrect offset). (Derick)
  166. . Fixed bug #77243 (Weekdays are calculated incorrectly for negative years).
  167. (Derick)
  168. . Fixed bug #78139 (timezone_open accepts invalid timezone string argument).
  169. (Derick)
  170. - Fileinfo:
  171. . Fixed bug #81723 (Heap buffer overflow in finfo_buffer). (CVE-2022-31627)
  172. (cmb)
  173. - FPM:
  174. . Fixed bug #67764 (fpm: syslog.ident don't work). (Jakub Zelenka)
  175. - GD:
  176. . Fixed imagecreatefromavif() memory leak. (cmb)
  177. - MBString:
  178. . mb_detect_encoding recognizes all letters in Czech alphabet (alexdowad)
  179. . mb_detect_encoding recognizes all letters in Hungarian alphabet (alexdowad)
  180. . Fixed bug GH-8685 (pcre not ready at mbstring startup). (Remi)
  181. . Backwards-compatible mappings for 0x5C/0x7E in Shift-JIS are restored,
  182. after they had been changed in 8.1.0. (Alex Dowad)
  183. - ODBC:
  184. . Fixed handling of single-key connection strings. (Calvin Buckley)
  185. - OPcache:
  186. . Fixed bug GH-8591 (tracing JIT crash after private instance method change).
  187. (Arnaud, Dmitry, Oleg Stepanischev)
  188. - OpenSSL:
  189. . Fixed bug #50293 (Several openssl functions ignore the VCWD).
  190. (Jakub Zelenka, cmb)
  191. . Fixed bug #81713 (NULL byte injection in several OpenSSL functions working
  192. with certificates). (Jakub Zelenka)
  193. - PDO_ODBC:
  194. . Fixed handling of single-key connection strings. (Calvin Buckley)
  195. - Zip:
  196. . Fixed bug GH-8781 (ZipArchive::close deletes zip file without updating stat
  197. cache). (Remi)
  198. 09 Jun 2022, PHP 8.1.7
  199. - CLI:
  200. . Fixed bug GH-8575 (CLI closes standard streams too early). (Levi Morrison)
  201. - Date:
  202. . Fixed bug #51934 (strtotime plurals / incorrect time). (Derick)
  203. . Fixed bug #51987 (Datetime fails to parse an ISO 8601 ordinal date
  204. (extended format)). (Derick)
  205. . Fixed bug #66019 (DateTime object does not support short ISO 8601 time
  206. format - YYYY-MM-DDTHH) (cmb, Derick)
  207. . Fixed bug #68549 (Timezones and offsets are not properly used when working
  208. with dates) (Derick, Roel Harbers)
  209. . Fixed bug #81565 (date parsing fails when provided with timezones including
  210. seconds). (Derick)
  211. . Fixed bug GH-7758 (Problems with negative timestamps and fractions).
  212. (Derick, Ilija)
  213. - FPM:
  214. . Fixed ACL build check on MacOS. (David Carlier)
  215. . Fixed bug #72185: php-fpm writes empty fcgi record causing nginx 502.
  216. (Jakub Zelenka, loveharmful)
  217. . Fixes use after free. (Heiko Weber).
  218. - mysqlnd:
  219. . Fixed bug #81719: mysqlnd/pdo password buffer overflow. (CVE-2022-31626)
  220. (c dot fol at ambionics dot io)
  221. - OPcache:
  222. . Fixed bug GH-8461 (tracing JIT crash after function/method change).
  223. (Arnaud, Dmitry)
  224. - OpenSSL:
  225. . Fixed bug #79589 (error:14095126:SSL routines:ssl3_read_n:unexpected eof
  226. while reading). (Jakub Zelenka)
  227. - Pcntl:
  228. . Fixed Haiku build. (David Carlier)
  229. - pgsql
  230. . Fixed bug #81720: Uninitialized array in pg_query_params().
  231. (CVE-2022-31625) (cmb)
  232. - Soap:
  233. . Fixed bug GH-8578 (Error on wrong parameter on SoapHeader constructor).
  234. (robertnisipeanu)
  235. . Fixed bug GH-8538 (SoapClient may strip parts of nmtokens). (cmb)
  236. - SPL:
  237. . Fixed bug GH-8235 (iterator_count() may run indefinitely). (cmb)
  238. - Standard:
  239. . Fixed bug GH-8185 (Crash during unloading of extension after dl() in ZTS).
  240. (Arnaud)
  241. - Zip:
  242. . Fixed type for index in ZipArchive::replaceFile. (Martin Rehberger)
  243. 12 May 2022, PHP 8.1.6
  244. - Core:
  245. . Fixed bug GH-8310 (Registry settings are no longer recognized). (cmb)
  246. . Fixed potential race condition during resource ID allocation. (ryancaicse)
  247. . Fixed bug GH-8133 (Preloading of constants containing arrays with enums
  248. segfaults). (ilutov)
  249. . Fixed Haiku ZTS builds. (David Carlier)
  250. - Date:
  251. . Fixed bug GH-7752 (DateTimeZone::getTransitions() returns insufficient
  252. data). (Derick)
  253. . Fixed bug GH-8108 (Timezone doesn't work as intended). (Derick)
  254. . Fixed bug #81660 (DateTimeZone::getTransitions() returns invalid data).
  255. (Derick)
  256. . Fixed bug GH-8289 (Exceptions thrown within a yielded from iterator are
  257. not rethrown into the generator). (Bob)
  258. - FFI:
  259. . Fixed bug GH-8433 (Assigning function pointers to structs in FFI leaks).
  260. (Bob)
  261. - FPM:
  262. . Fixed bug #76003 (FPM /status reports wrong number of active processe).
  263. (Jakub Zelenka)
  264. . Fixed bug #77023 (FPM cannot shutdown processes). (Jakub Zelenka)
  265. . Fixed comment in kqueue remove callback log message. (David Carlier)
  266. - Hash:
  267. . Fixed bug #81714 (segfault when serializing finalized HashContext). (cmb)
  268. - Iconv:
  269. . Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header).
  270. (cmb)
  271. - Intl:
  272. . Fixed bug GH-8364 (msgfmt_format $values may not support references). (cmb)
  273. - MBString:
  274. . Number of error markers emitted for invalid UTF-8 text matches WHATWG specification.
  275. This is a return to the behavior of PHP 8.0 and earlier. (alexdowad)
  276. - MySQLi:
  277. . Fixed bug GH-8267 (MySQLi uses unsupported format specifier on Windows).
  278. (cmb)
  279. - OPcache:
  280. . Fixed bug GH-8063 (OPcache breaks autoloading after E_COMPILE_ERROR).
  281. (Arnaud)
  282. - SPL:
  283. . Fixed bug GH-8366 (ArrayIterator may leak when calling __construct()).
  284. (cmb)
  285. . Fixed bug GH-8273 (SplFileObject: key() returns wrong value). (Girgias)
  286. - Streams:
  287. . Fixed php://temp does not preserve file-position when switched to temporary
  288. file. (Bernd Holzmüller)
  289. - zlib:
  290. . Fixed bug GH-8218 (ob_end_clean does not reset Content-Encoding header).
  291. (cmb)
  292. 14 Apr 2022, PHP 8.1.5
  293. - Core:
  294. . Fixed bug GH-8176 (Enum values in property initializers leak). (Bob)
  295. . Fixed freeing of internal attribute arguments. (Bob)
  296. . Fixed bug GH-8070 (memory leak of internal function attribute hash).
  297. (Tim Düsterhus)
  298. . Fixed bug GH-8160 (ZTS support on Alpine is broken). (Michael Voříšek)
  299. - Filter:
  300. . Fixed signedness confusion in php_filter_validate_domain(). (cmb)
  301. - Intl:
  302. . Fixed bug GH-8115 (Can't catch arg type deprecation when instantiating Intl
  303. classes). (ilutov)
  304. . Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier)
  305. . Fixed bug GH-7734 (Fix IntlPartsIterator key off-by-one error and first
  306. key). (ilutov)
  307. - MBString:
  308. . Fixed bug GH-8208 (mb_encode_mimeheader: $indent functionality broken).
  309. (cmb)
  310. - MySQLi:
  311. . Fixed bug GH-8068 (mysqli_fetch_object creates inaccessible properties).
  312. (cmb)
  313. - Pcntl:
  314. . Fixed bug GH-8142 (Compilation error on cygwin). (David Carlier)
  315. - PgSQL:
  316. . Fixed result_type related stack corruption on LLP64 architectures. (cmb)
  317. . Fixed bug GH-8253 (pg_insert() fails for references). (cmb)
  318. - Sockets:
  319. . Fixed Solaris builds. (David Carlier)
  320. . Fix undefined behavior in php_set_inet6_addr. (ilutov)
  321. - SPL:
  322. . Fixed bug GH-8121 (SplFileObject - seek and key with csv file inconsistent).
  323. (cmb)
  324. . Fixed bug GH-8192 (Cannot override DirectoryIterator::current() without
  325. return typehint in 8.1). (Nikita)
  326. - Standard:
  327. . Fixed bug GH-8048 (Force macOS to use statfs). (risner)
  328. 17 Mar 2022, PHP 8.1.4
  329. - Core:
  330. . Fixed Haiku ZTS build. (David Carlier)
  331. . Fixed bug GH-8059 arginfo not regenerated for extension. (Remi)
  332. . Fixed bug GH-8083 Segfault when dumping uncalled fake closure with static
  333. variables. (ilutov)
  334. . Fixed bug GH-7958 (Nested CallbackFilterIterator is leaking memory). (cmb)
  335. . Fixed bug GH-8074 (Wrong type inference of range() result). (cmb)
  336. . Fixed bug GH-8140 (Wrong first class callable by name optimization). (cmb)
  337. . Fixed bug GH-8082 (op_arrays with temporary run_time_cache leak memory
  338. when observed). (Bob)
  339. - GD:
  340. . Fixed libpng warning when loading interlaced images. (Brett)
  341. - FPM:
  342. . Fixed bug #76109 (Unsafe access to fpm scoreboard).
  343. (Till Backhaus, Jakub Zelenka)
  344. - Iconv:
  345. . Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb)
  346. . Fixed bug GH-7980 (Unexpected result for iconv_mime_decode). (cmb)
  347. - MBString:
  348. . Fixed bug GH-8128 (mb_check_encoding wrong result for 7bit). (alexdowad)
  349. - MySQLnd:
  350. . Fixed bug GH-8058 (NULL pointer dereference in mysqlnd package). (Kamil Tekiela)
  351. - Reflection:
  352. . Fixed bug GH-8080 (ReflectionClass::getConstants() depends on def. order).
  353. (cmb)
  354. . Fixed bug GH-8444 (Fix ReflectionProperty::__toString() of properties
  355. containing instantiated enums). (ilutov)
  356. - Zlib:
  357. . Fixed bug GH-7953 (ob_clean() only does not set Content-Encoding). (cmb)
  358. 03 Feb 2022, PHP 8.1.3
  359. - Core:
  360. . Fixed bug #81430 (Attribute instantiation leaves dangling pointer).
  361. (beberlei)
  362. . Fixed bug GH-7896 (Environment vars may be mangled on Windows). (cmb)
  363. . Fixed bug GH-7883 (Segfault when INI file is not readable). (Remi)
  364. - FFI:
  365. . Fixed bug GH-7867 (FFI::cast() from pointer to array is broken). (cmb,
  366. dmitry)
  367. - Filter:
  368. . Fix #81708: UAF due to php_filter_float() failing for ints.
  369. (CVE-2021-21708) (cmb)
  370. - FPM:
  371. . Fixed memory leak on invalid port. (David Carlier)
  372. . Fixed bug GH-7842 (Invalid OpenMetrics response format returned by FPM
  373. status page. (Stefano Arlandini)
  374. - MBString:
  375. . Fixed bug GH-7902 (mb_send_mail may delimit headers with LF only). (cmb)
  376. - MySQLnd:
  377. . Fixed bug GH-7972 (MariaDB version prefix 5.5.5- is not stripped). (Kamil Tekiela)
  378. - pcntl:
  379. . Fixed pcntl_rfork build for DragonFlyBSD. (David Carlier)
  380. - Sockets:
  381. . Fixed bug GH-7978 (sockets extension compilation errors). (David Carlier)
  382. - Standard:
  383. . Fixed bug GH-7899 (Regression in unpack for negative int value). (Remi)
  384. . Fixed bug GH-7875 (mails are sent even if failure to log throws exception).
  385. (cmb)
  386. 20 Jan 2022, PHP 8.1.2
  387. - Core:
  388. . Fixed bug #81216 (Nullsafe operator leaks dynamic property name). (Dmitry)
  389. . Fixed bug #81684 (Using null coalesce assignment with $GLOBALS["x"] produces
  390. opcode error). (ilutov)
  391. . Fixed bug #81656 (GCC-11 silently ignores -R). (Michael Wallner)
  392. . Fixed bug #81683 (Misleading "access type ... must be public" error message
  393. on final or abstract interface methods). (ilutov)
  394. . Fixed bug #81585 (cached_chunks are not counted to real_size on shutdown).
  395. (cmb)
  396. . Fixed bug GH-7757 (Multi-inherited final constant causes fatal error).
  397. (cmb)
  398. . Fixed zend_fibers.c build with ZEND_FIBER_UCONTEXT. (Petr Sumbera)
  399. . Added riscv64 support for fibers. (Jeremie Courreges-Anglas)
  400. - Filter:
  401. . Fixed FILTER_FLAG_NO_RES_RANGE flag. (Yifan Tong)
  402. - Hash:
  403. . Fixed bug GH-7759 (Incorrect return types for hash() and hash_hmac()).
  404. (cmb)
  405. . Fixed bug GH-7826 (Inconsistent argument name in hash_hmac_file and
  406. hash_file). (cmb)
  407. - MBString:
  408. . Fixed bug #81693 (mb_check_encoding(7bit) segfaults). (cmb)
  409. - MySQLi:
  410. . Fixed bug #81658 (MYSQL_OPT_LOAD_DATA_LOCAL_DIR not available in MariaDB).
  411. (devnexen)
  412. . Introduced MYSQLI_IS_MARIADB. (devnexen)
  413. . Fixed bug GH-7746 (mysqli_sql_exception->getSqlState()). (Kamil Tekiela)
  414. - MySQLnd:
  415. . Fixed bug where large bigints may be truncated. (Nathan Freeman, cmb)
  416. - OCI8:
  417. . Fixed bug GH-7765 (php_oci_cleanup_global_handles segfaults at second
  418. call). (cmb)
  419. - OPcache:
  420. . Fixed bug #81679 (Tracing JIT crashes on reattaching). (cmb)
  421. - Readline:
  422. . Fixed bug #81598 (Cannot input unicode characters in PHP 8 interactive
  423. shell). (Nikita)
  424. - Reflection:
  425. . Fixed bug #81681 (ReflectionEnum throwing exceptions). (cmb)
  426. - PDO_PGSQL:
  427. . Fixed error message allocation of PDO PgSQL. (SATO Kentaro)
  428. - Sockets:
  429. . Avoid void* arithmetic in sockets/multicast.c on NetBSD. (David Carlier)
  430. . Fixed ext/sockets build on Haiku. (David Carlier)
  431. - Spl:
  432. . Fixed bug #75917 (SplFileObject::seek broken with CSV flags). (Aliaksandr
  433. Bystry)
  434. . Fixed bug GH-7809 (Cloning a faked SplFileInfo object may segfault). (cmb)
  435. - Standard:
  436. . Fixed bug GH-7748 (gethostbyaddr outputs binary string). (cmb)
  437. . Fixed bug GH-7815 (php_uname doesn't recognise latest Windows versions).
  438. (David Warner)
  439. 02 Dec 2021, PHP 8.1.1
  440. - IMAP:
  441. . Fixed bug #81649 (imap_(un)delete accept sequences, not single numbers).
  442. (cmb)
  443. - PCRE:
  444. . Update bundled PCRE2 to 10.39. (cmb)
  445. . Fixed bug #74604 (Out of bounds in php_pcre_replace_impl). (cmb, Dmitry)
  446. - Standard:
  447. . Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate).
  448. (cmb)
  449. 25 Nov 2021, PHP 8.1.0
  450. - Core:
  451. . Fixed inclusion order for phpize builds on Windows. (cmb)
  452. . Added missing hashtable insertion APIs for arr/obj/ref. (Sara)
  453. . Implemented FR #77372 (Relative file path is removed from uploaded file).
  454. (Björn Tantau)
  455. . Fixed bug #81607 (CE_CACHE allocation with concurrent access). (Nikita,
  456. Dmitry)
  457. . Fixed bug #81507 (Fiber does not compile on AIX). (Clément Chigot)
  458. . Fixed bug #78647 (SEGFAULT in zend_do_perform_implementation_check).
  459. (Nikita)
  460. . Fixed bug #81518 (Header injection via default_mimetype / default_charset).
  461. (cmb)
  462. . Fixed bug #75941 (Fix compile failure on Solaris with clang). (Jaromír
  463. Doleček)
  464. . Fixed bug #81380 (Observer may not be initialized properly). (krakjoe)
  465. . Fixed bug #81514 (Using Enum as key in WeakMap triggers GC + SegFault).
  466. (Nikita)
  467. . Fixed bug #81520 (TEST_PHP_CGI_EXECUTABLE badly set in run-tests.php).
  468. (Remi)
  469. . Fixed bug #81377 (unset() of $GLOBALS sub-key yields warning). (Nikita)
  470. . Fixed bug #81342 (New ampersand token parsing depends on new line after it).
  471. (Nikita)
  472. . Fixed bug #81280 (Unicode characters in cli.prompt causes segfault).
  473. (krakjoe)
  474. . Fixed bug #81192 ("Declaration should be compatible with" gives incorrect
  475. line number with traits). (Nikita)
  476. . Fixed bug #78919 (CLI server: insufficient cleanup if request startup
  477. fails). (cataphract, cmb)
  478. . Fixed bug #81303 (match error message improvements). (krakjoe)
  479. . Fixed bug #81238 (Fiber support missing for Solaris Sparc). (trowski)
  480. . Fixed bug #81237 (Comparison of fake closures doesn't work). (krakjoe)
  481. . Fixed bug #81202 (powerpc64 build fails on fibers). (krakjoe)
  482. . Fixed bug #80072 (Cyclic unserialize in TMPVAR operand may leak). (Nikita)
  483. . Fixed bug #81163 (__sleep allowed to return non-array). (krakjoe)
  484. . Fixed bug #75474 (function scope static variables are not bound to a unique
  485. function). (Nikita)
  486. . Fixed bug #53826 (__callStatic fired in base class through a parent call if
  487. the method is private). (Nikita)
  488. . Fixed bug #81076 (incorrect debug info on Closures with implicit binds).
  489. (krakjoe)
  490. - CLI:
  491. . Fixed bug #81496 (Server logs incorrect request method). (lauri)
  492. - COM:
  493. . Dispatch using LANG_NEUTRAL instead of LOCALE_SYSTEM_DEFAULT. (Dmitry
  494. Maksimov)
  495. - Curl:
  496. . Fixed bug #81085 (Support CURLOPT_SSLCERT_BLOB for cert strings).
  497. (camporter)
  498. - Date:
  499. . Fixed bug #81458 (Regression Incorrect difference after timezone change).
  500. (Derick)
  501. . Fixed bug #81500 (Interval serialization regression since 7.3.14 / 7.4.2).
  502. (cmb)
  503. . Fixed bug #81504 (Incorrect timezone transition details for POSIX data).
  504. (Derick)
  505. . Fixed bug #80998 (Missing second with inverted interval). (Derick)
  506. . Speed up finding timezone offset information. (Derick)
  507. . Fixed bug #79580 (date_create_from_format misses leap year). (Derick)
  508. . Fixed bug #80963 (DateTimeZone::getTransitions() truncated). (Derick)
  509. . Fixed bug #80974 (Wrong diff between 2 dates in different timezones).
  510. (Derick)
  511. . Fixed bug #80998 (Missing second with inverted interval). (Derick)
  512. . Fixed bug #81097 (DateTimeZone silently falls back to UTC when providing an
  513. offset with seconds). (Derick)
  514. . Fixed bug #81106 (Regression in 8.1: add() now truncate ->f). (Derick)
  515. . Fixed bug #81273 (Date interval calculation not correct). (Derick)
  516. . Fixed bug #52480 (Incorrect difference using DateInterval). (Derick)
  517. . Fixed bug #62326 (date_diff() function returns false result). (Derick)
  518. . Fixed bug #64992 (dst not handled past 2038). (Derick)
  519. . Fixed bug #65003 (Wrong date diff). (Derick)
  520. . Fixed bug #66545 (DateTime. diff returns negative values). (Derick)
  521. . Fixed bug #68503 (date_diff on two dates with timezone set localised
  522. returns wrong results). (Derick)
  523. . Fixed bug #69806 (Incorrect date from timestamp). (Derick)
  524. . Fixed bug #71700 (Extra day on diff between begin and end of march 2016).
  525. (Derick)
  526. . Fixed bug #71826 (DateTime::diff confuse on timezone 'Asia/Tokyo'). (Derick)
  527. . Fixed bug #73460 (Datetime add not realising it already applied DST
  528. change). (Derick)
  529. . Fixed bug #74173 (DateTimeImmutable::getTimestamp() triggers DST switch in
  530. incorrect time). (Derick)
  531. . Fixed bug #74274 (Handling DST transitions correctly). (Derick)
  532. . Fixed bug #74524 (Date diff is bad calculated, in same time zone). (Derick)
  533. . Fixed bug #75167 (DateTime::add does only care about backward DST
  534. transition, not forward). (Derick)
  535. . Fixed bug #76032 (DateTime->diff having issues with leap days for
  536. timezones ahead of UTC). (Derick)
  537. . Fixed bug #76374 (Date difference varies according day time). (Derick)
  538. . Fixed bug #77571 (DateTime's diff DateInterval incorrect in timezones from
  539. UTC+01:00 to UTC+12:00). (Derick)
  540. . Fixed bug #78452 (diff makes wrong in hour for Asia/Tehran). (Derick)
  541. . Fixed bug #79452 (DateTime::diff() generates months differently between
  542. time zones). (Derick)
  543. . Fixed bug #79698 (timelib mishandles future timestamps (triggered by 'zic
  544. -b slim')). (Derick)
  545. . Fixed bug #79716 (Invalid date time created (with day "00")). (Derick)
  546. . Fixed bug #80610 (DateTime calculate wrong with DateInterval). (Derick)
  547. . Fixed bug #80664 (DateTime objects behave incorrectly around DST
  548. transition). (Derick)
  549. . Fixed bug #80913 (DateTime(Immutable)::sub around DST yield incorrect
  550. time). (Derick)
  551. - DBA:
  552. . Fixed bug #81588 (TokyoCabinet driver leaks memory). (girgias)
  553. - DOM:
  554. . Fixed bug #81433 (DOMElement::setIdAttribute() called twice may remove ID).
  555. (Viktor Volkov)
  556. - FFI:
  557. . Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not
  558. defined). (Dmitry)
  559. - Filter:
  560. . Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing).
  561. (cmb, Nikita)
  562. - FPM:
  563. . Fixed bug #81513 (Future possibility for heap overflow in FPM zlog).
  564. (Jakub Zelenka)
  565. . Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege
  566. escalation) (CVE-2021-21703). (Jakub Zelenka)
  567. . Added openmetrics status format. (Cees-Jan Kiewiet)
  568. . Enable process renaming on macOS. (devnexen)
  569. . Added pm.max_spawn_rate option to configure max spawn child processes rate.
  570. (Paulius Sapragonas)
  571. . Fixed bug #65800 (Events port mechanism). (psumbera)
  572. - FTP:
  573. . Convert resource<ftp> to object \FTP\Connection. (Sara)
  574. - GD:
  575. . Fixed bug #71316 (libpng warning from imagecreatefromstring). (cmb)
  576. . Convert resource<gd font> to object \GdFont. (Sara)
  577. - hash:
  578. . Implemented FR #68109 (Add MurmurHash V3). (Anatol, Michael)
  579. . Implemented FR #73385 (Add xxHash support). (Anatol)
  580. - JSON:
  581. . Fixed bug #81532 (Change of $depth behaviour in json_encode() on PHP 8.1).
  582. (Nikita)
  583. . Fixed bug GH-8238 (Register JSON_ERROR_NON_BACKED_ENUM constant). (ilutov)
  584. - LDAP:
  585. . Convert resource<ldap link> to object \LDAP\Connection. (Máté)
  586. . Convert resource<ldap result> to object \LDAP\Result. (Máté)
  587. . Convert resource<ldap result entry> to object \LDAP\ResultEntry. (Máté)
  588. - MBString:
  589. . Fixed bug #76167 (mbstring may use pointer from some previous request).
  590. (cmb, cataphract)
  591. . Fixed bug #81390 (mb_detect_encoding() regression). (alexdowad)
  592. . Fixed bug #81349 (mb_detect_encoding misdetcts ASCII in some cases).
  593. (Nikita)
  594. . Fixed bug #81298 (mb_detect_encoding() segfaults when 7bit encoding is
  595. specified). (Nikita)
  596. - MySQLi:
  597. . Fixed bug #70372 (Emulate mysqli_fetch_all() for libmysqlclient). (Nikita)
  598. . Fixed bug #80330 (Replace language in APIs and source code/docs).
  599. (Darek Ślusarczyk)
  600. . Fixed bug #80329 (Add option to specify LOAD DATA LOCAL white list folder
  601. (including libmysql)). (Darek Ślusarczyk)
  602. - MySQLnd:
  603. . Fixed bug #63327 (Crash (Bus Error) in mysqlnd due to wrong alignment).
  604. (Nikita)
  605. . Fixed bug #80761 (PDO uses too much memory). (Nikita)
  606. - Opcache:
  607. . Fixed bug #81409 (Incorrect JIT code for ADD with a reference to array).
  608. (Dmitry)
  609. . Fixed bug #81255 (Memory leak in PHPUnit with functional JIT).
  610. . Fixed bug #80959 (infinite loop in building cfg during JIT compilation).
  611. (Nikita, Dmitry)
  612. . Fixed bug #81225 (Wrong result with pow operator with JIT enabled).
  613. (Dmitry)
  614. . Fixed bug #81249 (Intermittent property assignment failure with JIT
  615. enabled). (Dmitry)
  616. . Fixed bug #81256 (Assertion `zv != ((void *)0)' failed for "preload" with
  617. JIT). (Dmitry)
  618. . Fixed bug #81133 (building opcache with phpize fails). (krakjoe)
  619. . Fixed bug #81136 (opcache header not installed). (krakjoe)
  620. . Added inheritance cache. (Dmitry)
  621. - OpenSSL:
  622. . Fixed bug #81502 ($tag argument of openssl_decrypt() should accept
  623. null/empty string). (Nikita)
  624. . Bump minimal OpenSSL version to 1.0.2. (Jakub Zelenka)
  625. - PCRE:
  626. . Fixed bug #81424 (PCRE2 10.35 JIT performance regression). (cmb)
  627. . Bundled PCRE2 is 10.37.
  628. - PDO:
  629. . Fixed bug #40913 (PDO_MYSQL: PDO::PARAM_LOB does not bind to a stream for
  630. fetching a BLOB). (Nikita)
  631. - PDO MySQL:
  632. . Fixed bug #80908 (PDO::lastInsertId() return wrong). (matt)
  633. . Fixed bug #81037 (PDO discards error message text from prepared
  634. statement). (Kamil Tekiela)
  635. - PDO OCI:
  636. . Fixed bug #77120 (Support 'success with info' at connection).
  637. (Sergei Morozov)
  638. - PDO ODBC:
  639. . Implement PDO_ATTR_SERVER_VERSION and PDO_ATTR_SERVER_INFO for
  640. PDO::getAttribute(). (Calvin Buckley)
  641. - PDO PgSQL:
  642. . Fixed bug #81343 (pdo_pgsql: Inconsitent boolean conversion after calling
  643. closeCursor()). (Philip Hofstetter)
  644. - PDO SQLite:
  645. . Fixed bug #38334 (Proper data-type support for PDO_SQLITE). (Nikita)
  646. - PgSQL:
  647. . Fixed bug #81509 (pg_end_copy still expects a resource). (Matteo)
  648. . Convert resource<pgsql link> to object \PgSql\Connection. (Máté)
  649. . Convert resource<pgsql result> to object \PgSql\Result. (Máté)
  650. . Convert resource<pgsql large object> to object \PgSql\Lob. (Máté)
  651. - Phar:
  652. . Use SHA256 by default for signature. (remi)
  653. . Add support for OpenSSL_SHA256 and OpenSSL_SHA512 signature. (remi)
  654. - phpdbg:
  655. . Fixed bug #81135 (unknown help topic causes assertion failure). (krakjoe)
  656. - PSpell:
  657. . Convert resource<pspell> to object \PSpell\Dictionary. (Sara)
  658. . Convert resource<pspell config> to object \PSpell\Config. (Sara)
  659. - readline:
  660. . Fixed bug #72998 (invalid read in readline completion). (krakjoe)
  661. - Reflection:
  662. . Fixed bug #81611 (ArgumentCountError when getting default value from
  663. ReflectionParameter with new). (Cameron Porter)
  664. . Fixed bug #81630 (PHP 8.1: ReflectionClass->getTraitAliases() crashes with
  665. Internal error). (Nikita)
  666. . Fixed bug #81457 (Enum: ReflectionMethod->getDeclaringClass() return a
  667. ReflectionClass). (Nikita)
  668. . Fixed bug #81474 (Make ReflectionEnum and related class non-final). (Nikita)
  669. . Fixed bug #80821 (ReflectionProperty::getDefaultValue() returns current
  670. value for statics). (Nikita)
  671. . Fixed bug #80564 (ReflectionProperty::__toString() renders current value,
  672. not default value). (Nikita)
  673. . Fixed bug #80097 (ReflectionAttribute is not a Reflector). (beberlei)
  674. . Fixed bug #81200 (no way to determine if Closure is static). (krakjoe)
  675. . Implement ReflectionFunctionAbstract::getClosureUsedVariables. (krakjoe)
  676. - Shmop:
  677. . Fixed bug #81407 (shmop_open won't attach and causes php to crash). (cmb)
  678. - SimpleXML:
  679. . Fixed bug #81325 (Segfault in zif_simplexml_import_dom). (remi)
  680. - SNMP:
  681. . Implement SHA256 and SHA512 for security protocol. (remi)
  682. - Sodium:
  683. . Added the XChaCha20 stream cipher functions. (P.I.E. Security Team)
  684. . Added the Ristretto255 functions, which are available in libsodium 1.0.18.
  685. (P.I.E. Security Team)
  686. - SPL:
  687. . Fixed bug #66588 (SplFileObject::fgetcsv incorrectly returns a row on
  688. premature EOF). (Aliaksandr Bystry)
  689. . Fixed bug #80663 (Recursive SplFixedArray::setSize() may cause double-free).
  690. (cmb, Nikita, Tyson Andre)
  691. . Fixed bug #81477 (LimitIterator + SplFileObject regression in 8.0.1). (cmb)
  692. . Fixed bug #81112 (Special json_encode behavior for SplFixedArray). (Nikita)
  693. . Fixed bug #80945 ("Notice: Undefined index" on unset() ArrayObject
  694. non-existing key). (Nikita)
  695. . Fixed bug #80724 (FilesystemIterator::FOLLOW_SYMLINKS remove KEY_AS_FILE
  696. from bitmask). (Cameron Porter)
  697. - Standard:
  698. . Fixed bug #81441 (gethostbyaddr('::1') returns ip instead of name after
  699. calling some other method). (Nikita)
  700. . Fixed bug #81491 (Incorrectly using libsodium for argon2 hashing).
  701. (Dan Pock)
  702. . Fixed bug #81142 (PHP 7.3+ memory leak when unserialize() is used on an
  703. associative array). (Nikita)
  704. . Fixed bug #81111 (Serialization is unexpectedly allowed on anonymous classes
  705. with __serialize()). (Nikita)
  706. . Fixed bug #81137 (hrtime breaks build on OSX before Sierra). (krakjoe)
  707. . Fixed bug #77627 (method_exists on Closure::__invoke inconsistency).
  708. (krakjoe)
  709. - Streams:
  710. . Fixed bug #81475 (stream_isatty emits warning with attached stream wrapper).
  711. (cmb)
  712. - XML:
  713. . Fixed bug #79971 (special character is breaking the path in xml function)
  714. (CVE-2021-21707). (cmb)
  715. . Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace).
  716. (Aliaksandr Bystry, cmb)
  717. - Zip:
  718. . Fixed bug #81490 (ZipArchive::extractTo() may leak memory). (cmb, Remi)
  719. . Fixed bug #77978 (Dirname ending in colon unzips to wrong dir). (cmb)
  720. . Fixed bug #81420 (ZipArchive::extractTo extracts outside of destination)
  721. (CVE-2021-21706). (cmb)
  722. . Fixed bug #80833 (ZipArchive::getStream doesn't use setPassword). (Remi)