Pike 8.0.1738 Release notes

Changes since Pike 8.0.1116 (release 14)

New Features

  • Calendar Updated to use tzdata2021e.
  • Parser.XML.Tree Added set_text() to update the contents of a text node.
  • Sql.Sql Add query_db() to API.
  • SSL.SSLFile Add {query,set}_timeout(). This adds an API to set an optional timeout to be used for blocking operations. When the timeout expires it is handled as if the peer sent a fatal internal error alert.
  • Standards.PEM Added helper methods, including: get_certificates() , get_private_keys(), get_private_key() and decrypt_fragment().
  • Runtime and EFUNS
    • describe_backtrace() now reports cpu time –with-profiling.
    • decode_value can be called with codec -1, which disables decoding of functions, objects, programs and types.

Bug Fixes

  • crypt Fixed a bug which caused crypt() with a random salt to sometimes return “*0” instead of an encrypted password.
  • Concurrent
    • The future generated by ->timeout() would not necessarily resolve with the fullfilled or rejected values if the original Promise/Future was resolved or rejected before hitting the timeout.
    • If the original promise resolves or rejects, we now attempt to unschedule the timeout call_out from the backend we scheduled it in, not the one (now) configured in the Future.
  • Critbit
    • Fix a number of memory and behavior errors.
  • Inotify add_watch() now returns -1 for filsystem-related failures that may be due to the filsystem being in flux.
  • Image.BMP Improved size check better detects malformed BMP images.
  • Image.GIF
    • Improve detection of malformed LZW bit sizes.
    • Improve detection of malformed LZW dictionary extensions.
  • Image.ILBM
    • Guard alloca() allocations with check_c_stack().
    • Improved length accounting in unpackByteRun1().
  • Image.JPEG
    • Do not over-allocate memory for decoded image.
    • Limit decoded size of images to 2 GB.
  • Image.PCX Improved size checks better detect malformed PCX images.
  • Image.PNG Improved size check better detects malformed PNG images.
  • Image.PSD Improved size check better detects malformed PSD images.
  • Image.TGA
    • Improve detection of malformed TGA images.
    • Correctly update pointer when horizontal or vertical flipping is requested by the TGA image.
  • Image.TIFF Improved size checks in image decoding
  • Image.TIM Improved size checks better detect malformed TIM images.
  • Image.WBF Improved size check better detects malformed WBF images.
  • Image.X Guard alloca() allocations with check_c_stack().
  • Image.XCF Fixed to properly initialize the layer mask structure.
  • Image.XWD Improved size check better detects malformed XWD images.
  • Protocols.LDAP.client LDAP connections secured with TLS/SSL now timeout if the server does not respond within 10 seconds.
  • Sql.mysql Improved character set handling
  • Sql.pgsql Numerous bug fixes.

Building & Tools

  • Improved check for stack direction to also report correct results when compiling with Clang 11.
  • _TIME_BITS is now set to 64, to get a 64-bit time_t on 32-bit systems running glibc 2.34 or newer.
  • Improvements to building and installer code signing on macOS.
  • Fixes to better support building with future versions of GNU make.
  • Use updated FFI API in Java module, to better support recent libffi.
  • Fix testsuite generation for BSD m4 users; POSIX systems must continue to use GNU m4 (gm4).