Klever: Klever 3.7

Added by Evgeny Novikov about 1 month ago

Klever 3.7 was primarily devoted to improving a quality of verification results for Linux kernel drivers. After all about 43% of original false alarms issued when checking memory safety have gone.

Following fixes and improvements in Klever 3.7 deserve an attention:

  • Adding new environment models for the Linux kernel:
    • Modeling the list API.
    • Modeling the kref API.
    • Adding model for the input_ff_create_memless() function.
    • Adding models for check_add_overflow(), check_sub_overflow() and check_mul_overflow() macros that fixes the struct_size() model for new versions of the Linux kernel.
    • Modeling v4l2_device(un)register()_ functions.
    • Modeling the i2c_match_id() function.
    • Adding model for the dev_err_probe() function.
    • Adding models for the dynamic debug printing API.
  • Fixing existing environment models for the Linux kernel:
    • Modeling failures for calloc() and zalloc().
    • Fixing the off-by-one error when choosing a device from MODULE_DEVICE_TABLE.
    • Passing the same resource to probe and remove for HID drivers.
    • Allocating memory for inode for file_operations callbacks.
    • Allocating memory for tty_struct for tty_operations callbacks.
    • Avoiding using implicit resources in environment model specifications.
  • Adding a new section to the user documentation: Verifying New Program.
  • Fixing tests for environment model specifications and Environment Model Generator.
  • Updating CIF which main file was rewritten in C++ and that started to print keyword static for local variables.
  • Updating CPAchecker that supports packed/aligned attributes and issues violation witnesses more efficiently.
  • Updating Python dependencies.

We would like to thank very much everybody who made this great job possible!

C Instrumentation Framework: CIF 1.2

Added by Evgeny Novikov 3 months ago

The major enhancement for CIF 1.2 is that the main CIF source file was rewritten in C++. The new version is more abstract and it is easier to maintain and develop it further. Using C++ allows to avoid a lot of potential memory errors that we encountered and fixed earlier. Besides, the execution time was reduced by using another way of launching subprocesses. The latter made redundant escaping double quotes in command-line options passed to CIF.

We would like to thank Ilya Shchepetkov for this awesome job!

C Instrumentation Framework: CIF 1.1

Added by Evgeny Novikov 3 months ago

CIF 1.1 was released!

There are following important changes and fixes:

  • Supporting additional special directive for source code queries:
    • $storage_class that allows to get storage classes for functions and variables.
    • $var_init_list_json that allows to print global variable initializers in JSON.
  • Fixing Aspectator to keep storage classes for variables.
  • Improving and fixing Aspectator’s C back-end:
    • Fixing initialization of anonymous unions.
    • Fixing conversion for strings containing hexadecimal escape sequences.
    • Increasing recursion limit from 10 to 100 to handle deeply nested expressions.
  • Simplifying the main CIF source file and avoiding errors of its compilation with GCC 12.
  • Adding new test cases and making the test framework more robust.

This release was done at the beginning of June.

Klever: Klever 3.6

Added by Evgeny Novikov 3 months ago

Klever 3.6 was released pretty soon after Klever 3.5 since we updated Clade and CIF in the backward incompatible manner. This means that the new version of Klever requires all build bases to be regenerated with the new version of Clade and CIF installed together with Klever. You can download build bases for Linux 5.5.19, 5.10.120 and 5.17.13 as well as sample build bases prepared ahead of time. Corresponding files are available either directly from the "Files" tab or from the Klever tutorial.

Other changes in Klever 3.6 are new models for struct_size() and underlying __ab_c_size() for the Linux kernel.

Klever: Klever 3.5

Added by Evgeny Novikov 4 months ago

We released Klever 3.5 that has following noticeable changes:

  • Improving support for verification of Linux 5.10 and Linux 5.17 (new specifications set "5.17" was added).
  • Environment models generated at verification of Linux loadable kernel modules do not contain infinite loops anymore. This accelerated analysis and did not result in any degradation in the quality of verification results.
  • Using Ubuntu 20.04, Debian 11 and openSUSE 15.3 as preferable Linux distributions for deployment of Klever.
  • Switching to Python 3.10. You should carefully read this comment if you are going to update existing local instances of Klever.
  • Supporting regular expressions for assessing unsafes (you can see #11513 for more details).
  • Updating Klever Tutorial, in particular using verification of loadable kernel modules of Linux 5.5 as an example.
  • Updating add-ons and verification back-ends (various bug fixes and optimizations).
  • More advanced authorization of new users. Now the administrator should activate new users while somebody should grant them access to some jobs.

Many thanks to everybody involved!

Local Support Project: Redmine 5.0.0

Added by Alexey Demakov 6 months ago

Уважаемые коллеги!

Redmine обновился до версии 5.0.0.

Просьба сообщать об обнаруженных проблемах.

Klever: Klever 3.4

Added by Evgeny Novikov 7 months ago

Klever 3.4 includes the following prominent features:

  • Several improvements contributing development and generation of environment models:
    • Ability to specify savepoints for the main process.
    • Ability to select scenarios for particular savepoints manually.
    • Ability to configure the number of iterations for invocation of callbacks.
    • Providing users with a graphical representation of environment models directly in the Klever web UI.
  • Models for kmem_cache functions for the Linux kernel.
  • Updating add-ons and verification back-ends (various bug fixes and optimizations).
  • New sections in the user documentation: Configuring Program Decomposition and Development of Verifier Profiles.
  • Besides, you can find the CIF’s user documentation that may be helpful at development of advanced specifications and models.
  • Many fixes and minor improvements that make the specification development and verification workflow more easy, correct and reliable.

We highly appreciate efforts of developers and the feedback from users who made this release possible!

Local Support Project: Redmine 4.2.3

Added by Alexey Demakov 9 months ago

Уважаемые коллеги!

Redmine обновился до версии 4.2.3.

Просьба сообщать об обнаруженных проблемах.


Also available in: Atom