nbdkit-release-notes-1.46(1)
π nbdkit-release-notes-1.46 π
okay bestie, welcome to the nbdkit-release-notes-1.46(1) page from the nbdkit manual β¨ this is the whole tea on what changed in nbdkit 1.46, and I'm gonna walk you through every single crumb, no skips, no "you get the idea". sit down, hydrate, let's go π«Ά
πΈ NAME πΈ
nbdkit-release-notes-1.46 β release notes for nbdkit 1.46
β¨ DESCRIPTION β¨
These are the release notes for the nbdkit stable release 1.46. It covers all the major changes since 1.44, and there are a lot of them. π
<nbdkit 1.46.0> was released on 20 December 2025. mark the calendar bestie π
π Security π
So here's the serious one, and I need you to actually pay attention because it's giving exposed data energy π
On certain types of storage β most notably when a disk image lives on an NFS mount β nbdkit would truncate zero requests to 64M. And since nbdcopy(1) defaults to a 128M block size, that mismatch could leave parts of a disk unzeroed, which means older content could be exposed. yeah. π
This was fixed in 1.44.1, and the fix was backported all the way back to the 1.38 branch. For more details peep the commit:
https://gitlab.com/nbdkit/nbdkit/-/commit/20b23fc9838faeddfd42664a7f497a9b29dc5921
thanks Alex Kalenyuk π«Ά
For past security issues, see nbdkit-security(1).
π§© Plugins π§©
- New
nbdkit-vram-plugin(1)β it turns Video RAM into an NBD disk, using OpenCL. that's literally the plot of a sci-fi movie and I'm obsessed π nbdkit-vddk-plugin(1)β the"export"parameter (which was added back in 1.44) now lets you grab exports from subdirectories on the ESXi server too. thanks Ming Xie β¨nbdkit-data-plugin(1)β now supports"base64:..."inside format strings πnbdkit-sh-plugin(3)andnbdkit-extentlist-filter(1)β both now allow blank lines and comments in the list of extents. thanks Eric Blake πnbdkit-ssh-plugin(1)β can now handle remote block devices properly (thanks trainzkid) π«Ά and also we now display information about the remote SSH server in debug output πnbdkit-random-plugin(1)β has a new"fast=true"mode, which trades increased performance for less randomness. pick your fighter πnbdkit-pattern-plugin(1)β got new"stride"and"upper"parameters:- Stride is for creating patterns that align to filesystem or device block boundaries.
- Upper modifies the upper bits of each pattern, so a different pattern shows up on each run.
- This plugin also now supports checking writes. slay β¨
nbdkit-file-plugin(1)β prints more useful debugging (that's when the-voption is used). On Windows this plugin now displays complete error messages instead of just error codes. Also the existing"cache=none"parameter has been renamed to"reduce-memory-pressure=true"to reflect what it actually does β but bestie, the old parameter can still be used, so nobody's build breaks π
π¦ Filters π¦
nbdkit-cacheextents-filterβ was already deprecated before, and has been removed in this release of nbdkit. If you used this filter before, the advice is simply to remove it from the filter chain, because it usually wasn't effective anyway. rip but also good riddance π- New
nbdkit-count-filter(1)β produces a simple summary of the number of bytes read, written, etc. cute little stats girly π - New
nbdkit-indexed-gzip-filter(1)β can be used to random access gzip files efficiently. thanks Shasheen Ediriweera π - New
nbdkit-map-filter(1)β can remap disk blocks arbitrarily. main character energy honestly π nbdkit-delay-filter(1)β has a new"delay-trigger=FILE"option that lets you enable the filter based on the existence of a file β¨
π Language bindings π
- Python binding for
nbdkit_parse_bool(3)π«Ά - Fixed a crasher when unloading OCaml plugins (thanks Guillaume Munch-Maccagnoni) π Also, we now document that
"nbdkit -s"does not work for OCaml plugins β you must use systemd socket activation instead. iykyk π
π Server π
- New
nbdkit --nameparameter β this lets you name your nbdkit instances. Which is genuinely so useful when you've got multiple copies of nbdkit running, especially when they're all writing debug or error messages into a single log file, because now you can actually tell which instance produced a particular message. thanks Ming Xie β¨ - You can now read nbdkit command line parameters from an external file using the
@PATHsyntax π nbdkit --long-optionsand--short-optionsβ these are used to implement bash completion. Previously they were hidden, implementation-specific options, but they're useful enough that we now support and document them. glow up π- During the negotiation phase, we now allow the client to send more than one
"OPT_LIST"request. thanks Eric Blake π¦ - Post-Quantum Cryptography (PQC) is now fully supported (thanks Dan Berrange) π₯
- New command line option
--tls-priorityβ lets you temporarily override the system TLS priority string πΈ
π§ API π§
- New
nbdkit_debug_hexdump(3)function β can be used to print a buffer in canonical hexdump format, for debugging β¨
π©Ή Bug fixes π©Ή
nbdkit-file-plugin(1)β trimming and zeroing paths were fixed so they should work on a wider range of backing storage π«Ά- Empty string is now rejected as either a plugin or filter name. This used to make us try to
dlopen(""), which actually opens the current executable (apparently a glibc extension π). It would fail with a very confusing error. not anymore bestie π - Fixed
nbdkit_parse_delay(3)on i386 without SSE. The previous code used the wrong floating point rounding mode. π - The way that
nbdkit-linuxdisk-plugin(1)parsed the output ofdu(1)usinggetline(3)was not POSIX compliant, and a change to glibc broke it. This was fixed in nbdkit β and it also caused POSIX to reconsider the wording of thegetlinestandard (thanks Eric Blake) π iconic behaviour honestly - Fixed our use of
mke2fs(8)when creating a test disk fornbdkit-ext2-filter(1). This greatly reduces the amount of disk space used for nbdkit builds. thanks Mykola Ivanets π - Fixed crashing bugs in
nbdkit-checkwrite-filter(1). thanks Eric Blake β¨ - Fixed the order of inclusion of the Python header file, because of changes in recent Python 3.14 π
nbdkit-readonly-filter(1)now advertises the correct readonly status down to plugins. thanks Eric Blake π- Reviewed Coverity warnings π§Ή
π Documentation π
- Documented how to attach NBD devices to QEMU VMs β either when using qemu directly, or with libvirt (thanks Vadim Rozenfeld, Peter Krempa) π«Ά
- The
TODOandSECURITYfiles in the git repository now use markdown π
π§ͺ Tests π§ͺ
- Tests no longer fail if
qemu-img(1)is not available at build time β
π οΈ Build π οΈ
- Installed package names are printed by
"./configure"β¨
π§ Internals π§
- New
ONCE()macro β runs code only once. It's used for some informational debug messages where we want the message to be printed once, the first time the situation is encountered π - Several extensions to the internal vector type, including
"vector_uniq","vector_append_array","vector_insert_array","vector_remove_range"π¦ - Fixed the memory allocation behaviour of the internal vector library, which should reduce memory usage in some situations. thanks Eric Blake πΈ
- New tests functions:
"requires_tls","requires_tls_certificates","requires_tls_psk"π - Use
"__attribute__((nonnull))"in more places, and added the"__attribute__((malloc))"annotation on certain functions β¨
π«Ά SEE ALSO π«Ά
π AUTHORS π
Authors of nbdkit 1.46 β give it up for the girlies and guys π
- Eric Blake
- Michael Ablassmeier
- Mykola Ivanets
- Richard W.M. Jones
- Shasheen Ediriweera
π COPYRIGHT π
Copyright Red Hat
π LICENSE π
okay bestie, here comes the legal bit, and I'm keeping it word for word because you do not mess with license text π
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- Neither the name of Red Hat nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
and that's the whole page bestie!! π this lil manual page ships as part of nbdkit-1.48.1, dated 2026-08-29, and yeah it's the nbdkit-release-notes-1.46(1) page in case you got lost in the sauce π go forth and upgrade, periodt π
β¨
π¦ where this page comes from
- fedora 44: nbdkit-devel 1.48.1-1.fc44 Β· BSD-3-Clause
- fedora 44: nbdkit-devel 1.48.1-1.fc44 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms