3 nbdkit-release-notes-1.16 - release notes for nbdkit 1.16
7 These are the release notes for nbdkit stable release 1.16.
8 This describes the major changes since 1.14.
10 nbdkit 1.16.0 was released on 14th November 2019.
14 Two security issues were found during development of nbdkit 1.16.
15 Fixes for these were backported to older stable branches. Upgrading
16 to the fixed versions is highly recommended. The new
17 L<nbdkit-security(1)> man page contains an up to date list of past
21 denial of service due to premature opening of back-end connection
23 See the full announcement and links to mitigation, tests and fixes
25 https://www.redhat.com/archives/libguestfs/2019-September/msg00084.html
28 assertion failure by issuing commands in the wrong order
30 This CVE was caused by the fix to the previous issue.
32 See the full announcement and links to mitigation, tests and fixes
34 https://www.redhat.com/archives/libguestfs/2019-September/msg00272.html
38 Add support for fast zeroing. Plugins can expose this using the new
39 C<.can_fast_zero> method (Eric Blake).
41 L<nbdkit-partitioning-plugin(1)> allows use of C<mbr-id=default> or
42 C<type-guid=default> to go back to the default MBR byte or partition
45 New I<--mask-handshake> server flag can be used for testing client
46 feature negotiation (Eric Blake).
48 The client export name is passed to L<nbdkit-captive(1)> I<--run>
49 parameter as C<$exportname> (Eric Blake).
51 Captive I<--run> commands which fail (eg. aborting) now cause nbdkit
52 to exit with an error instead of errors being silently ignored (Eric
55 File descriptors can be passed to password parameters, eg:
56 C<password=-3> which means that the password should be read from file
59 nbdkit can now serve over the C<AF_VSOCK> protocol (thanks Stefan
62 New I<--log=null> option discards error messages.
66 Python 2 support has been B<dropped> from L<nbdkit-python-plugin(3)>
67 in line with Python 2 end of life at the beginning of 2020. Python
68 E<ge> 3.3 is required by this plugin. If you wish to continue to use
69 Python 2 then you will need to use nbdkit 1.14.
71 New L<nbdkit-info-plugin(1)> which returns various server information
72 back to the client. It can be used for testing server latency amongst
75 L<nbdkit-data-plugin(1)> now allows you to write C<BYTE*N> to get
76 repeated bytes (eg. S<C<nbdkit data data="0x55*4096">>).
78 L<nbdkit-ssh-plugin(1)> new parameter C<compression=true|false> to
79 control transport compression.
81 L<nbdkit-vddk-plugin(1)> is no longer compiled on non-x86 platforms
82 since VMware has only ever shipped VDDK on x86.
84 L<nbdkit-sh-plugin(1)> scripts can now see the client exportname and
85 can use the C<magic_config_key> feature.
89 New L<nbdkit-retry-filter(1)> which can reopen the plugin
90 transparently on certain types of failures (lots of help from Eric
95 Macros C<NBDKIT_VERSION_MAJOR>, C<NBDKIT_VERSION_MINOR>,
96 C<NBDKIT_VERSION_MICRO> expose the compile-time version of nbdkit to
97 plugins and filters (Eric Blake).
99 Filters (which unlike plugins do I<not> have a public stable API) must
100 now exactly match the version of nbdkit when loaded (Eric Blake).
102 New C<.can_fast_zero> method (Eric Blake).
104 New C<nbdkit_export_name> server function for reading the export name
105 passed by the client.
107 New C<nbdkit_peer_name> server function to return the client address
108 (like L<getpeername(2)>).
110 New server functions for safely parsing integers: C<nbdkit_parse_int>,
111 C<nbdkit_parse_unsigned>, C<nbdkit_parse_int8_t>,
112 C<nbdkit_parse_uint8_t>, C<nbdkit_parse_int16_t>,
113 C<nbdkit_parse_uint16_t>, C<nbdkit_parse_int32_t>,
114 C<nbdkit_parse_uint32_t>, C<nbdkit_parse_int64_t>,
115 C<nbdkit_parse_uint64_t>.
119 C<.trim> with FUA flag set now works (Eric Blake).
123 The previous release notes have been turned into man pages.
127 Several tests now optionally use L<nbdsh(1)> instead of qemu-io.
129 You can now fuzz nbdkit using either American Fuzzy Lop or clang’s
132 Several tests have had sleep times increased to make them more stable
133 when run on slow or heavily loaded machines.
137 Reproducible builds (Chris Lamb).
139 Compile code with I<-Wshadow> warning (Eric Blake).
141 The internal backend system has been extensively overhauled. In
142 particular this means that we now validate request ranges as requests
143 are passed between filters and down to the plugin, making it easier to
144 find bugs in filters early (Eric Blake).
146 Plugin size and C<can_*> flags are cached more aggressively by the
149 Variable Length Arrays (VLAs) on stack are now banned throughout the
152 The F<nbd-protocol.h> header describing the NBD protocol is now shared
155 Plugin C<.unload> method is now called after all worker threads have
156 exited, avoiding races at server shutdown.
158 Code was audited using Coverity and various problems were fixed.
172 Copyright (C) 2019 Red Hat Inc.