Pike 8.0.498 Release notes

New Features

  • Crypto.ECC

    • Added get_point() to Crypto.ECC.Curve.

    • Crypto.ECC.Curve.Point objects can now be compared with equal().

  • JWK

    • Added Web.encode_jwk().

    • Added jwk() to signatures (Nettle.Sign, Crypo.RSA, Crypto.ECC.Curve.ECDSA)

    • Added jwk() to Crypto.Hash.HMAC.

    • decode_jwk() on a ECC private key now returns an ECDSA object (and a Point object for an ECC public key).

  • Standards.PKCS

    Support for decoding PKCS #10 public keys through Standard.PKCS.parse_public_key.

Bug fixes

  • Protocols.DNS

    Added hooks for controlling error handling in Protocols.DNS.server.

  • Protocols.HTTP

    Fixed a memory leak in the HTTP header parser upon receiving malformed HTTP headers.

  • Protocols.WebSocket

    Fixed a case where the onopen callback would get the wrong argument.

  • Search

    Fixes some broken SQL queries causing data corruption.

  • Sql.sqlite

    list_fields() now throws an error when used on a non-existent table.

  • Stdio.Buffer

    • Some methods (add_int*, input_from, add_padding) did not trigger a call to the fd output function. When using an Stdio.Buffer instance in Stdio.File buffer mode, this could result in new data not being written.

    • Due to an error in the realloc strategy, in some cases unread() did not succeed after reading or writing data to a fd.

  • Threads

    Fixed a race condition when creating a new thread while threads are disabled.

  • WhiteFish

    • Fixed issues with merging of empty sets.

    • Fixed rank calculation on intersection of sets.

    • Fixed multiple memory leaks.

    • Improved behavior when provided with corrupted input.

    • The module is now tested by the normal testsuite.


  • Improved syntax error recovery, including eliminating some fatal conditions.

  • Fixed a memory leak in the preprocessor.


  • Fixed NULL-dereference by the GC when running count_memory() on a Pike compiled with –with-dmalloc.

  • Fixed fatal “Didn’t find gc marker as expected” at exit on a Pike compiled with –with-cleanup-on-exit.

  • Signal handling

    Fixed an error where processes would share the same queue for pending signals after using fork(). As a result, a signal sent to one process could trigger a signal handler in the other process.

Building & Tools

  • Configuration

    Fixes to the detection of MariaDB, MySQL and Inotify.

  • mkpackage

    Fixed issue where the error code from extra platform tests wasn’t propagated all the way to exit from the install script.