Skip to content

Releases: jtsylve/LiME

v1.12.0

31 Mar 14:21

Choose a tag to compare

LiME v1.12.0

16 commits since v1.11.0 (March 23–24, 2026)

Bug Fixes (kernel module)

Hash / digest subsystem (hash.c)

  • Fix multi-page vmalloc digest corruption — only the last page was being hashed
  • Fix crypto_digest_update passing byte length instead of nsg count
  • Fix memory leak: digest_value was never freed in ldigest_clean
  • Fix uninitialized digestsize on kernels 2.6.11–2.6.18
  • Fix NULL dereference in ldigest_clean when crypto_alloc fails
  • Add NULL checks on output and digest_value allocations

TCP subsystem (tcp.c)

  • Fix sizeof(struct iovec) used on a struct kvec variable
  • Fix socket leak: pre-allocated socket was overwritten by kernel_accept

Core module (main.c)

  • Fix ldigest_clean extern return type mismatch (int vs void)
  • Fix wrong format specifier %zu for signed ssize_t
  • Fix missing __get_free_page and kmalloc NULL checks
  • Fix resource leaks in init() error paths
  • Fix no_overlap set even when digest init fails

Code Quality

  • Centralize all extern declarations in lime.h
  • Remove redundant includes and duplicate externs across files
  • Extract create_tcp_sock() helper to deduplicate socket creation in tcp.c
  • Replace strcpy/strcat chain with snprintf in hash.c
  • Refactor init() error paths to goto-based cleanup pattern
  • Fix () vs (void) inconsistencies, declaration-after-statement issues, mixed indentation

REUSE / SPDX Compliance

  • Add SPDX license headers to all source and script files
  • Add REUSE.toml for machine-readable license metadata
  • Replace monolithic LICENSE file with LICENSES/GPL-2.0-only.txt

Documentation

  • Rename doc/docs/
  • Rewrite and clarify README.md (updated usage examples, parameter descriptions, sidecar digest naming)
  • Add docs/test-architecture.md describing the CI and test framework design
  • Fix missing "padded" label in docs/README.md parameter description

CI / Testing

  • Add GitHub Actions multi-kernel compile-test workflow (build-test.yml) covering multiple kernel versions
  • Add sparse static analysis and QEMU smoke tests
  • Add pre-commit hooks (trailing whitespace, markdown lint, flawfinder, codespell, REUSE)
  • Add test/ directory with Dockerfile, kernel prep scripts, initramfs builder, and smoke-test harness
  • Update actions/cache to v5; fix objtool preservation during kernel tree stripping
  • Remove kernel 4.15 from CI matrix after extensive attempts to fix its toolchain incompatibilities

Full Changelog: v1.11.0...v1.12.0

v1.11.0

15 Mar 21:57
15937e2

Choose a tag to compare

What's Changed

  • fix errors that prevent building on OL9 by @fabianfrz in #135
  • Prevent build error after changes in kernel_bind() prototype by @efzulian in #136

New Contributors

Full Changelog: v1.10.1...v1.11.0

v1.10.1

18 Aug 00:48
ade367d

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.10.0...v1.10.1

Fix compiling for modern kernels and compilers

06 Aug 23:52
86dfff2

Choose a tag to compare

What's Changed

  • use kmap atomic for kernels past 2.6.37 by @tsahee in #80
  • Fix endless loop on PAE kernels with ranges > 4GiB by @fabianfreyer in #88
  • [x86] Fix kmap_atomic raises scheduling while atomic bug by @qodroi in #110
  • Rename raw mode expert and provide more warnings around use of this format. Closes #111 by @eve-mem in #121
  • Changed main.c to be compliant with new kernel versions by @ITRaab in #127
  • Fix the build process on ARMs by @eribertomota in #125

New Contributors

Full Changelog: v1.9.1...v1.10.0

Bug Fix and new kernel options

25 Aug 18:59

Choose a tag to compare

Release V1.9.1

Memory imaging is no longer very very very slow in certain cases.
Supports new TCP options in kernel 4.8
Other fixes

Kernel Compression Option

19 Oct 17:23

Choose a tag to compare

Thanks to the great hard work of @valldrac, an option to compress memory using the zlib library from the kernel has been added.

Compression can significantly reduce the time required to acquire a memory capture. It can achieve the speedup of 4x over uncompressed transfers with a few memory overhead (~ 24 KB).

To enable add "compress=1" to your insmod parameters.
To decompress it you can use pigz or any zlib-compatible library.

See the README for more details.

This release also includes refactoring and cleaning.

Fixes for digest transfer

16 Jan 00:45

Choose a tag to compare

This release fixes issues for transferring a calculated digest over a
TCP socket. The module will now retry 10x when it fails to bind a socket.

The Makefile also provides an option to build a module without stripping
symbols

Memory Hashing

06 May 18:00
7eba65e

Choose a tag to compare

LiME v1.8 contains a minor bug fix and the ability to calculate and generate a hash digest of acquired memory.

Thanks to Daryl Bennett (@kd8bny) for the hard work in this area!

Fixes for kernels >= 4.11

15 Jun 02:36

Choose a tag to compare

documentation of the timeout parameter (Fixes #27)

* documentation of the timeout parameter

* Update README

v1.7.6

23 Dec 20:13

Choose a tag to compare

Disabled timeout for kernel versions < 2.6.16.