Miva Empresa/Mia/Script Compiler v5.32 Release Notes
Posted by Wayne Smith on 17 August 2018 11:01 AM

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

(2 vote(s))
This article was helpful
This article was not helpful

Comments (0)
Post a new comment
Full Name:
CAPTCHA Verification 
Please enter the text you see in the image into the textbox below. This is required to prevent automated registrations and form submissions.

Help Desk Software by Kayako