Releases: jtsylve/LiME
v1.12.0
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_updatepassing byte length instead ofnsgcount - Fix memory leak:
digest_valuewas never freed inldigest_clean - Fix uninitialized
digestsizeon kernels 2.6.11–2.6.18 - Fix NULL dereference in
ldigest_cleanwhencrypto_allocfails - Add NULL checks on
outputanddigest_valueallocations
TCP subsystem (tcp.c)
- Fix
sizeof(struct iovec)used on astruct kvecvariable - Fix socket leak: pre-allocated socket was overwritten by
kernel_accept
Core module (main.c)
- Fix
ldigest_cleanextern return type mismatch (intvsvoid) - Fix wrong format specifier
%zufor signedssize_t - Fix missing
__get_free_pageandkmallocNULL checks - Fix resource leaks in
init()error paths - Fix
no_overlapset even when digest init fails
Code Quality
- Centralize all
externdeclarations inlime.h - Remove redundant includes and duplicate externs across files
- Extract
create_tcp_sock()helper to deduplicate socket creation intcp.c - Replace
strcpy/strcatchain withsnprintfinhash.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.tomlfor machine-readable license metadata - Replace monolithic
LICENSEfile withLICENSES/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.mddescribing the CI and test framework design - Fix missing "padded" label in
docs/README.mdparameter 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/cacheto 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
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
- @fabianfrz made their first contribution in #135
- @efzulian made their first contribution in #136
Full Changelog: v1.10.1...v1.11.0
v1.10.1
Fix compiling for modern kernels and compilers
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
- @tsahee made their first contribution in #80
- @fabianfreyer made their first contribution in #88
- @qodroi made their first contribution in #110
- @eve-mem made their first contribution in #121
- @ITRaab made their first contribution in #127
- @eribertomota made their first contribution in #125
Full Changelog: v1.9.1...v1.10.0
Bug Fix and new kernel options
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
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
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
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
documentation of the timeout parameter (Fixes #27) * documentation of the timeout parameter * Update README