No announcement yet.

Miva Empresa 5.32 Has Been Released

  • Filter
  • Time
  • Show
Clear All
new posts

    Miva Empresa 5.32 Has Been Released

    Major new features are official support for Redis, additional crypto functions that enable U2F key support in 9.10.00 and newer, and features that will be required for the 9.12.00 API release.


    Bugs Fixed
    23788: OpenSSL thread locking callback is called after all threads have been joined and cleanup has begun
    24758: CompilerParser::Find_ScratchVariable_Ident can be susceptible to a buffer overflow
    24759: Passing a negative value for the "-O" flag causes a segfault
    24762: mvc fails to pass the verbose flag to the assembler
    24817: The JSONDecoder should clear any existing data from the output parameter
    26511: LOWER function leaks memory
    26512: UPPER function leaks memory
    26517: SQL_Stack::PopBool should use the string length, not the string size
    26518: MivaSQL crashes when search condition does not contain RHS operators
    26522: MivaSQL UNION should remove duplicates from individual result sets
    26525: SQL_Bucket_Record does not delete the value popped off of the stack
    26556: MvSMTP should clear the g.MvSMTP_Error variable on a successful connection
    26572: PostgreSQL: Add prepared statement to cache after query is executed / view is closed
    26602: Compiler: MvOPENVIEW should output a compiler error if the QUERY attribute is missing
    26767: CommandLine_Warning_Flags has bad index boundary checks
    26772: LocateDSOs should output an error when the .so/.DLL directory encounters an error
    26841: UNIXReentrantFileManager::DirectoryListing should use readdir_r
    26881: Generate SHA256SUMS of all distribution files and components
    27000: VariableHash::LookupVariable_Fancy on present but uncreated variable causes a crash
    27031: DefaultDatabaseVariable::Clone is cloning the wrong variable
    27037: SpecialVariables values are not set to the parent's value in a multi-threaded environment

    New Builtin Functions
    - file_set_time( path, location, modified )
    Sets the file's modified time

    - path - The path to the file
    - location - Either script or data
    - modified - time_t (seconds since 1-JAN-1970)

    Return Value:
    - 1 on success, 0 on failure

    - crypto_next_error()
    Gets the next crypto error

    - None

    Return Value:
    - The appropriate crypto error

    - crypto_clear_error()
    Will clear out all crypto errors

    - None

    Return Value:
    - Empty

    - crypto_evp_sign( digestname, privkey, buffer, signature var )
    Generates an RSA / ECDSA signature

    - digestname - Hash algorithm name, such as "md5" or "sha256". Supported digest algorithms will vary between OpenSSL installations
    - privkey - EVP PKEY structure reference
    - buffer - The data to sign
    - signature - The signed output signature

    Return Value:
    - 1 on success, 0 on failure

    - crypto_evp_verify( digestname, pubkey, buffer, signature )
    Verifies an RSA / ECDSA signature

    - digestname - Hash algorithm name, such as "md5" or "sha256". Supported digest algorithms will vary between OpenSSL installations
    - pubkey - EVP PKEY structure reference
    - buffer - The data to verify
    - signature - The signature to verify

    Return Value:
    - 1 on success, 0 on failure

    - evp_pkey_load_pubkey_x509( x509 var, pkey var )
    Loads a PKEY reference from an x509 public key reference

    - x509 - Certificate reference returned from functions such as x509_load_mem
    - pkey - Structure reference

    Return Value:
    - 1 on success, 0 on failure

    - crypto_last_error
    Previously if the crypto error originated from Miva Empresa, the returned error was always the same. If the crypto error was from OpenSSL
    then it would be lost after calling the function. Modified to always return the last crypto error.

    - trim / ltrim / rtrim
    Will now trim whitespace from arrays and structures. Previously the functions would convert arrays and structures to serialized data and
    then trim it. Arrays and structures are now iterated and all values within are trimmed appropriately.

    - POST content type of "application/json" is now supported. The POSTed data will be parsed and stored in the s.json_data variable as a JSON
    object. The raw POSTed data will populate the s.content_data variable.

    - Added the FLAGS attribute to MvCALL / mvt:call. The only supported flag currently is "noparse" which will disable parsing of the returned
    data. The data will populate the s.callvalue variable. This is ideal if you do not need to iterate HTML / XML elements.

    - evp_pkey_load_mem now supports the DER and PEM formats.

    - Added support for Redis. The use of the redis functions can be obtained by adding a system library with the code of "hiredis."

    - The compiler now warns when text / HTML is present and will not be output in the current context.

    Rick Wilson
    Miva, Inc.
    [email protected]