diff --git a/0011-common-include-Add-ARRAY_SIZE-macro.patch b/0011-common-include-Add-ARRAY_SIZE-macro.patch new file mode 100644 index 0000000..8e19ee7 --- /dev/null +++ b/0011-common-include-Add-ARRAY_SIZE-macro.patch @@ -0,0 +1,302 @@ +From 06d47e2efe1387a3873529c52a4c7c680ddeee22 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 7 Jul 2022 12:37:10 +0100 +Subject: [PATCH] common/include: Add ARRAY_SIZE macro + +This macro returns the length (in elements) at compile time of arrays +declared as: + + int foo[] = { 1, 2, 3 }; + + ARRAY_SIZE(foo) + ===> 3 + +It also attempts to detect some errors, such as using the macro with a +pointer instead of an array, with some ideas borrowed (not copied) +from Linux, QEMU and Stack Overflow questions. + +Link: https://stackoverflow.com/questions/19452971/array-size-macro-that-rejects-pointers +Link: https://listman.redhat.com/archives/libguestfs/2022-July/029412.html +Thanks: Laszlo Ersek +(cherry picked from commit 0fa23df5cd5dc97a55857416ea81d5de6d867c18) +--- + .gitignore | 1 + + common/include/Makefile.am | 7 +++ + common/include/array-size.h | 41 +++++++++++++ + common/include/compiler-macros.h | 60 +++++++++++++++++++ + common/include/test-array-size.c | 100 +++++++++++++++++++++++++++++++ + 5 files changed, 209 insertions(+) + create mode 100644 common/include/array-size.h + create mode 100644 common/include/compiler-macros.h + create mode 100644 common/include/test-array-size.c + +diff --git a/.gitignore b/.gitignore +index 10e1f99d..658fd4e6 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -35,6 +35,7 @@ plugins/*/*.3 + /aclocal.m4 + /autom4te.cache + /common/bitmap/test-bitmap ++/common/include/test-array-size + /common/include/test-ascii-ctype + /common/include/test-ascii-string + /common/include/test-byte-swapping +diff --git a/common/include/Makefile.am b/common/include/Makefile.am +index b73dd471..d3cf9408 100644 +--- a/common/include/Makefile.am ++++ b/common/include/Makefile.am +@@ -34,10 +34,12 @@ include $(top_srcdir)/common-rules.mk + # These headers contain only common code shared by the core server, + # plugins and/or filters. They are not installed. + EXTRA_DIST = \ ++ array-size.h \ + ascii-ctype.h \ + ascii-string.h \ + byte-swapping.h \ + checked-overflow.h \ ++ compiler-macros.h \ + exit-with-parent.h \ + hexdigit.h \ + isaligned.h \ +@@ -55,6 +57,7 @@ EXTRA_DIST = \ + # Unit tests. + + TESTS = \ ++ test-array-size \ + test-ascii-ctype \ + test-ascii-string \ + test-byte-swapping \ +@@ -69,6 +72,10 @@ TESTS = \ + $(NULL) + check_PROGRAMS = $(TESTS) + ++test_array_size_SOURCES = test-array-size.c array-size.h ++test_array_size_CPPFLAGS = -I$(srcdir) ++test_array_size_CFLAGS = $(WARNINGS_CFLAGS) ++ + test_ascii_ctype_SOURCES = test-ascii-ctype.c ascii-ctype.h + test_ascii_ctype_CPPFLAGS = -I$(srcdir) + test_ascii_ctype_CFLAGS = $(WARNINGS_CFLAGS) +diff --git a/common/include/array-size.h b/common/include/array-size.h +new file mode 100644 +index 00000000..b6d33dde +--- /dev/null ++++ b/common/include/array-size.h +@@ -0,0 +1,41 @@ ++/* nbdkit ++ * Copyright (C) 2013-2022 Red Hat Inc. ++ * ++ * 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. ++ */ ++ ++#ifndef NBDKIT_ARRAY_SIZE_H ++#define NBDKIT_ARRAY_SIZE_H ++ ++#include "compiler-macros.h" ++ ++#define ARRAY_SIZE(a) \ ++ ((sizeof (a) / sizeof ((a)[0])) + BUILD_BUG_ON_ZERO (!TYPE_IS_ARRAY(a))) ++ ++#endif /* NBDKIT_ARRAY_SIZE_H */ +diff --git a/common/include/compiler-macros.h b/common/include/compiler-macros.h +new file mode 100644 +index 00000000..504e0085 +--- /dev/null ++++ b/common/include/compiler-macros.h +@@ -0,0 +1,60 @@ ++/* nbdkit ++ * Copyright (C) 2013-2022 Red Hat Inc. ++ * ++ * 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. ++ */ ++ ++#ifndef NBDKIT_COMPILER_MACROS_H ++#define NBDKIT_COMPILER_MACROS_H ++ ++#ifndef __cplusplus ++ ++/* This expression fails at compile time if 'expr' is true. It does ++ * this by constructing a struct which has an impossible ++ * (negative-sized) array. ++ * ++ * If 'expr' is false then we subtract the sizes of the two identical ++ * structures, returning zero. ++ */ ++#define BUILD_BUG_ON_ZERO_SIZEOF(expr) \ ++ (sizeof (struct { int _array_size_failed[(expr) ? -1 : 1]; })) ++#define BUILD_BUG_ON_ZERO(expr) \ ++ (BUILD_BUG_ON_ZERO_SIZEOF(expr) - BUILD_BUG_ON_ZERO_SIZEOF(expr)) ++ ++#define TYPE_IS_ARRAY(a) \ ++ (!__builtin_types_compatible_p (typeof (a), typeof (&(a)[0]))) ++ ++#else /* __cplusplus */ ++ ++#define BUILD_BUG_ON_ZERO(expr) 0 ++#define TYPE_IS_ARRAY(a) 1 ++ ++#endif /* __cplusplus */ ++ ++#endif /* NBDKIT_COMPILER_MACROS_H */ +diff --git a/common/include/test-array-size.c b/common/include/test-array-size.c +new file mode 100644 +index 00000000..d77ba3c9 +--- /dev/null ++++ b/common/include/test-array-size.c +@@ -0,0 +1,100 @@ ++/* nbdkit ++ * Copyright (C) 2020-2022 Red Hat Inc. ++ * ++ * 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. ++ */ ++ ++#include ++ ++#include ++#include ++#undef NDEBUG /* Keep test strong even for nbdkit built without assertions */ ++#include ++ ++#include "array-size.h" ++ ++struct st { const char *s; int i; }; ++ ++static const char *s0[] = { }; ++static const char *s1[] = { "a" }; ++static const char *s3[] = { "a", "b", "c" }; ++static const char *s4[4] = { "a", "b", "c", "d" }; ++static int i0[] = { }; ++static int i1[] = { 1 }; ++static int i3[] = { 1, 2, 3 }; ++static int i4[4] = { 1, 2, 3, 4 }; ++static struct st st0[] = { }; ++static struct st st1[] = { { "a", 1 } }; ++static struct st st3[] = { { "a", 1 }, { "b", 2 }, { "c", 3 } }; ++static struct st st4[4] = { { "a", 1 }, { "b", 2 }, { "c", 3 }, { "d", 4 } }; ++static struct st st4_0[4]; ++ ++int ++main (void) ++{ ++ assert (ARRAY_SIZE (s0) == 0); ++ assert (ARRAY_SIZE (s1) == 1); ++ assert (ARRAY_SIZE (s3) == 3); ++ assert (ARRAY_SIZE (s4) == 4); ++ assert (ARRAY_SIZE (i0) == 0); ++ assert (ARRAY_SIZE (i1) == 1); ++ assert (ARRAY_SIZE (i3) == 3); ++ assert (ARRAY_SIZE (i4) == 4); ++ assert (ARRAY_SIZE (st0) == 0); ++ assert (ARRAY_SIZE (st1) == 1); ++ assert (ARRAY_SIZE (st3) == 3); ++ assert (ARRAY_SIZE (st4) == 4); ++ assert (ARRAY_SIZE (st4_0) == 4); ++ ++#ifdef static_assert ++ static_assert (ARRAY_SIZE (s0) == 0, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (s1) == 1, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (s3) == 3, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (s4) == 4, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (i0) == 0, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (i1) == 1, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (i3) == 3, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (i4) == 4, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (st0) == 0, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (st1) == 1, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (st3) == 3, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (st4) == 4, "ARRAY_SIZE macro does not work"); ++ static_assert (ARRAY_SIZE (st4_0) == 4, "ARRAY_SIZE macro does not work"); ++#endif ++ ++ /* You can uncomment this to test the negative case. Unfortunately ++ * it's difficult to automate this test. ++ */ ++#if 0 ++ int *p = i4; ++ assert (ARRAY_SIZE (p) == 4); ++#endif ++ ++ exit (EXIT_SUCCESS); ++} +-- +2.31.1 + diff --git a/0012-Use-ARRAY_SIZE-macro-in-various-places-in-nbdkit.patch b/0012-Use-ARRAY_SIZE-macro-in-various-places-in-nbdkit.patch new file mode 100644 index 0000000..f8878c9 --- /dev/null +++ b/0012-Use-ARRAY_SIZE-macro-in-various-places-in-nbdkit.patch @@ -0,0 +1,342 @@ +From a9cf21ef2e4770825d693e29f6b2d02d4291230e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 7 Jul 2022 12:41:15 +0100 +Subject: [PATCH] Use ARRAY_SIZE macro in various places in nbdkit + +(cherry picked from commit 0a077b95b23c1d9e2ffbad5e58fc8ae46a4e547e) +--- + common/bitmap/test-bitmap.c | 3 ++- + common/include/test-random.c | 5 ++--- + common/utils/Makefile.am | 1 + + common/utils/test-quotes.c | 3 ++- + plugins/ocaml/Makefile.am | 1 + + plugins/ocaml/plugin.c | 14 ++++++++------ + plugins/ruby/Makefile.am | 1 + + plugins/ruby/ruby.c | 5 +++-- + plugins/ssh/ssh.c | 4 ++-- + plugins/torrent/torrent.cpp | 5 ++--- + server/fuzzer.c | 4 +++- + server/public.c | 3 ++- + server/test-public.c | 4 +++- + 13 files changed, 32 insertions(+), 21 deletions(-) + +diff --git a/common/bitmap/test-bitmap.c b/common/bitmap/test-bitmap.c +index 69e4d9ff..657cc9aa 100644 +--- a/common/bitmap/test-bitmap.c ++++ b/common/bitmap/test-bitmap.c +@@ -45,6 +45,7 @@ + + #include + ++#include "array-size.h" + #include "bitmap.h" + + static void +@@ -71,7 +72,7 @@ test (int bpb, int blksize) + exit (EXIT_FAILURE); + + /* Set some bits at known block numbers. */ +- for (j = 0; j < sizeof blks / sizeof blks[0]; ++j) { ++ for (j = 0; j < ARRAY_SIZE (blks); ++j) { + v = (j & 1) == 0 ? 1 : (1< + #include + ++#include "array-size.h" + #include "random.h" + + /* This works by comparing the result to some known test vectors. It +@@ -160,8 +161,6 @@ UINT64_C(0xc6ca62fc772728b0), + } }, + }; + +-#define nr_tests (sizeof tests / sizeof tests[0]) +- + int + main (void) + { +@@ -169,7 +168,7 @@ main (void) + uint64_t r; + unsigned errors = 0; + +- for (i = 0; i < nr_tests; ++i) { ++ for (i = 0; i < ARRAY_SIZE (tests); ++i) { + struct random_state state; + + printf ("seed: %" PRIu64 "\n", tests[i].seed); +diff --git a/common/utils/Makefile.am b/common/utils/Makefile.am +index f8db853f..2c789015 100644 +--- a/common/utils/Makefile.am ++++ b/common/utils/Makefile.am +@@ -105,6 +105,7 @@ test_quotes_SOURCES = test-quotes.c quote.c utils.h + test_quotes_CPPFLAGS = \ + -I$(srcdir) \ + -I$(top_srcdir)/common/replacements \ ++ -I$(top_srcdir)/common/include \ + $(NULL) + test_quotes_CFLAGS = $(WARNINGS_CFLAGS) + test_quotes_LDADD = \ +diff --git a/common/utils/test-quotes.c b/common/utils/test-quotes.c +index bb825788..4960c7f8 100644 +--- a/common/utils/test-quotes.c ++++ b/common/utils/test-quotes.c +@@ -41,6 +41,7 @@ + #include + #include + ++#include "array-size.h" + #include "utils.h" + + #ifdef HAVE_OPEN_MEMSTREAM +@@ -93,7 +94,7 @@ main (void) + size_t i; + bool fail = false; + +- for (i = 0; i < sizeof tests / sizeof tests[0]; i++) { ++ for (i = 0; i < ARRAY_SIZE (tests); i++) { + fail |= test (tests[i].orig, "shell_quote", shell_quote, tests[i].shell); + fail |= test (tests[i].orig, "uri_quote", uri_quote, tests[i].uri); + } +diff --git a/plugins/ocaml/Makefile.am b/plugins/ocaml/Makefile.am +index 0ee07f60..05624176 100644 +--- a/plugins/ocaml/Makefile.am ++++ b/plugins/ocaml/Makefile.am +@@ -69,6 +69,7 @@ libnbdkitocaml_la_SOURCES = \ + libnbdkitocaml_la_CPPFLAGS = \ + -I$(OCAMLLIB) \ + -I$(top_srcdir)/include \ ++ -I$(top_srcdir)/common/include \ + -DCAML_NAME_SPACE \ + $(NULL) + +diff --git a/plugins/ocaml/plugin.c b/plugins/ocaml/plugin.c +index 8dde45a0..2fe4e460 100644 +--- a/plugins/ocaml/plugin.c ++++ b/plugins/ocaml/plugin.c +@@ -49,6 +49,8 @@ + #define NBDKIT_API_VERSION 2 + #include + ++#include "array-size.h" ++ + #include "plugin.h" + + /* This constructor runs when the plugin loads, and initializes the +@@ -637,7 +639,7 @@ pread_wrapper (void *h, void *buf, uint32_t count, uint64_t offset, + flagsv = Val_flags (flags); + + value args[] = { *(value *) h, countv, offsetv, flagsv }; +- rv = caml_callbackN_exn (pread_fn, sizeof args / sizeof args[0], args); ++ rv = caml_callbackN_exn (pread_fn, ARRAY_SIZE (args), args); + if (Is_exception_result (rv)) { + nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); + CAMLreturnT (int, -1); +@@ -666,7 +668,7 @@ pwrite_wrapper (void *h, const void *buf, uint32_t count, uint64_t offset, + flagsv = Val_flags (flags); + + value args[] = { *(value *) h, strv, offsetv, flagsv }; +- rv = caml_callbackN_exn (pwrite_fn, sizeof args / sizeof args[0], args); ++ rv = caml_callbackN_exn (pwrite_fn, ARRAY_SIZE (args), args); + if (Is_exception_result (rv)) { + nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); + CAMLreturnT (int, -1); +@@ -705,7 +707,7 @@ trim_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + flagsv = Val_flags (flags); + + value args[] = { *(value *) h, countv, offsetv, flagsv }; +- rv = caml_callbackN_exn (trim_fn, sizeof args / sizeof args[0], args); ++ rv = caml_callbackN_exn (trim_fn, ARRAY_SIZE (args), args); + if (Is_exception_result (rv)) { + nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); + CAMLreturnT (int, -1); +@@ -726,7 +728,7 @@ zero_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + flagsv = Val_flags (flags); + + value args[] = { *(value *) h, countv, offsetv, flagsv }; +- rv = caml_callbackN_exn (zero_fn, sizeof args / sizeof args[0], args); ++ rv = caml_callbackN_exn (zero_fn, ARRAY_SIZE (args), args); + if (Is_exception_result (rv)) { + nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); + CAMLreturnT (int, -1); +@@ -748,7 +750,7 @@ extents_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags, + flagsv = Val_flags (flags); + + value args[] = { *(value *) h, countv, offsetv, flagsv }; +- rv = caml_callbackN_exn (extents_fn, sizeof args / sizeof args[0], args); ++ rv = caml_callbackN_exn (extents_fn, ARRAY_SIZE (args), args); + if (Is_exception_result (rv)) { + nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); + CAMLreturnT (int, -1); +@@ -788,7 +790,7 @@ cache_wrapper (void *h, uint32_t count, uint64_t offset, uint32_t flags) + flagsv = Val_flags (flags); + + value args[] = { *(value *) h, countv, offsetv, flagsv }; +- rv = caml_callbackN_exn (cache_fn, sizeof args / sizeof args[0], args); ++ rv = caml_callbackN_exn (cache_fn, ARRAY_SIZE (args), args); + if (Is_exception_result (rv)) { + nbdkit_error ("%s", caml_format_exception (Extract_exception (rv))); + CAMLreturnT (int, -1); +diff --git a/plugins/ruby/Makefile.am b/plugins/ruby/Makefile.am +index 456d03b1..2453ba05 100644 +--- a/plugins/ruby/Makefile.am ++++ b/plugins/ruby/Makefile.am +@@ -47,6 +47,7 @@ nbdkit_ruby_plugin_la_SOURCES = \ + + nbdkit_ruby_plugin_la_CPPFLAGS = \ + -I$(top_srcdir)/include \ ++ -I$(top_srcdir)/common/include \ + $(NULL) + nbdkit_ruby_plugin_la_CFLAGS = \ + $(WARNINGS_CFLAGS) \ +diff --git a/plugins/ruby/ruby.c b/plugins/ruby/ruby.c +index a038d8e8..6aaf03e4 100644 +--- a/plugins/ruby/ruby.c ++++ b/plugins/ruby/ruby.c +@@ -44,6 +44,8 @@ + #include + #endif + ++#include "array-size.h" ++ + static VALUE nbdkit_module = Qnil; + static int last_error; + +@@ -206,8 +208,7 @@ plugin_rb_config (const char *key, const char *value) + + /* Load the Ruby script into the interpreter. */ + const char *options[] = { "--", script }; +- code = ruby_options (sizeof options / sizeof options[0], +- (char **) options); ++ code = ruby_options (ARRAY_SIZE (options), (char **) options); + + /* Check if we managed to compile the Ruby script to code. */ + if (!ruby_executable_node (code, &state)) { +diff --git a/plugins/ssh/ssh.c b/plugins/ssh/ssh.c +index 77cfcf6c..39d77e44 100644 +--- a/plugins/ssh/ssh.c ++++ b/plugins/ssh/ssh.c +@@ -50,6 +50,7 @@ + + #include + ++#include "array-size.h" + #include "const-string-vector.h" + #include "minmax.h" + +@@ -82,10 +83,9 @@ log_callback (int priority, const char *function, const char *message, void *vp) + { + const char *levels[] = + { "none", "warning", "protocol", "packet", "function" }; +- const size_t nr_levels = sizeof levels / sizeof levels[0]; + const char *level; + +- if (priority >= 0 && priority < nr_levels) ++ if (priority >= 0 && priority < ARRAY_SIZE (levels)) + level = levels[priority]; + else + level = "unknown"; +diff --git a/plugins/torrent/torrent.cpp b/plugins/torrent/torrent.cpp +index d8cbda95..0dcf0d10 100644 +--- a/plugins/torrent/torrent.cpp ++++ b/plugins/torrent/torrent.cpp +@@ -52,6 +52,7 @@ + #include + #include + ++#include "array-size.h" + extern "C" { + #include "cleanup.h" + }; +@@ -101,8 +102,6 @@ static struct setting settings[] = { + { "user-agent", "user_agent", pack.user_agent, + STRING }, + }; +-static const size_t nr_settings = sizeof settings / sizeof settings[0]; +- + static libtorrent::alert_category_t alerts = + libtorrent::alert_category::error + | libtorrent::alert_category::piece_progress +@@ -221,7 +220,7 @@ torrent_config (const char *key, const char *value) + + /* Settings. */ + else { +- for (size_t i = 0; i < nr_settings; ++i) { ++ for (size_t i = 0; i < ARRAY_SIZE (settings); ++i) { + if (strcmp (key, settings[i].name) == 0 || + (settings[i].altname && strcmp (key, settings[i].altname) == 0)) { + switch (settings[i].type) { +diff --git a/server/fuzzer.c b/server/fuzzer.c +index 4bbb0061..6c57e0f6 100644 +--- a/server/fuzzer.c ++++ b/server/fuzzer.c +@@ -43,6 +43,8 @@ + #include + #include + ++#include "array-size.h" ++ + #include "internal.h" + + #ifndef ENABLE_LIBFUZZER +@@ -122,7 +124,7 @@ server (int sock) + "plugins/memory/.libs/nbdkit-memory-plugin." SOEXT, "1M", + NULL + }; +- const int argc = sizeof argv / sizeof argv[0] - 1; ++ const int argc = ARRAY_SIZE (argv) - 1; + int saved_stdin, saved_stdout; + + /* Make the socket appear as stdin and stdout of the process, saving +diff --git a/server/public.c b/server/public.c +index d9ed0d9c..a93041fe 100644 +--- a/server/public.c ++++ b/server/public.c +@@ -70,6 +70,7 @@ + #include + #endif + ++#include "array-size.h" + #include "ascii-ctype.h" + #include "ascii-string.h" + #include "get_current_dir_name.h" +@@ -712,7 +713,7 @@ nbdkit_nanosleep (unsigned sec, unsigned nsec) + */ + if (sigfillset(&all)) + abort (); +- switch (ppoll (fds, sizeof fds / sizeof fds[0], &ts, &all)) { ++ switch (ppoll (fds, ARRAY_SIZE (fds), &ts, &all)) { + case -1: + assert (errno != EINTR); + nbdkit_error ("poll: %m"); +diff --git a/server/test-public.c b/server/test-public.c +index 2e6a7d8f..1cb759d1 100644 +--- a/server/test-public.c ++++ b/server/test-public.c +@@ -43,6 +43,8 @@ + + #include "internal.h" + ++#include "array-size.h" ++ + static bool error_flagged; + + /* Stubs for linking against minimal source files, and for proving +@@ -167,7 +169,7 @@ test_nbdkit_parse_size (void) + { "1E", 1024LL * 1024 * 1024 * 1024 * 1024 * 1024 }, + }; + +- for (i = 0; i < sizeof pairs / sizeof pairs[0]; i++) { ++ for (i = 0; i < ARRAY_SIZE (pairs); i++) { + int64_t r; + + error_flagged = false; +-- +2.31.1 + diff --git a/0013-vddk-Demote-another-phone-home-error-message-to-debu.patch b/0013-vddk-Demote-another-phone-home-error-message-to-debu.patch new file mode 100644 index 0000000..c32398e --- /dev/null +++ b/0013-vddk-Demote-another-phone-home-error-message-to-debu.patch @@ -0,0 +1,78 @@ +From 16fdeab315c865c2aeae1ebf896dc69d5ebdeffc Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 7 Jul 2022 08:57:36 +0100 +Subject: [PATCH] vddk: Demote another "phone home" error message to debug + +Reported-by: Ming Xie +Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2104720 +Reviewed-by: Laszlo Ersek +(cherry picked from commit afa8cc84392af26641b340c58b836ca879698a53) +--- + plugins/vddk/vddk.c | 32 +++++++++++++++++++++----------- + 1 file changed, 21 insertions(+), 11 deletions(-) + +diff --git a/plugins/vddk/vddk.c b/plugins/vddk/vddk.c +index dbd3fdbe..35697bc1 100644 +--- a/plugins/vddk/vddk.c ++++ b/plugins/vddk/vddk.c +@@ -49,6 +49,7 @@ + #define NBDKIT_API_VERSION 2 + #include + ++#include "array-size.h" + #include "cleanup.h" + #include "minmax.h" + #include "vector.h" +@@ -495,11 +496,25 @@ debug_function (const char *fs, va_list args) + nbdkit_debug ("%s", str); + } + ++/* VDDK 7 added some useless error messages about their "phone home" ++ * system called CEIP which only panics users. Demote these to debug ++ * statements below. ++ * ++ * https://bugzilla.redhat.com/show_bug.cgi?id=1834267 ++ * https://bugzilla.redhat.com/show_bug.cgi?id=2083617 ++ * https://bugzilla.redhat.com/show_bug.cgi?id=2104720 ++ */ ++static const char * const demoted_errors[] = { ++ "Get CEIP status failed", ++ "VDDK_PhoneHome:", ++}; ++ + /* Turn error messages from the library into nbdkit_error. */ + static void + error_function (const char *fs, va_list args) + { + CLEANUP_FREE char *str = NULL; ++ size_t i; + + /* If the thread-local error_suppression flag is non-zero then we + * will suppress error messages from VDDK in this thread. +@@ -513,17 +528,12 @@ error_function (const char *fs, va_list args) + + trim (str); + +- /* VDDK 7 added some useless error messages about their "phone home" +- * system called CEIP which only panics users. Demote to a debug +- * statement. +- * https://bugzilla.redhat.com/show_bug.cgi?id=1834267 +- * https://bugzilla.redhat.com/show_bug.cgi?id=2083617 +- */ +- if (strstr (str, "Get CEIP status failed") != NULL || +- strstr (str, "VDDK_PhoneHome: Unable to load configuration " +- "options from ") != NULL) { +- nbdkit_debug ("%s", str); +- return; ++ /* See comment above about demoted errors. */ ++ for (i = 0; i < ARRAY_SIZE (demoted_errors); ++i) { ++ if (strstr (str, demoted_errors[i]) != NULL) { ++ nbdkit_debug ("%s", str); ++ return; ++ } + } + + nbdkit_error ("%s", str); +-- +2.31.1 + diff --git a/0014-common-include-test-array-size.c-Avoid-Clang-warning.patch b/0014-common-include-test-array-size.c-Avoid-Clang-warning.patch new file mode 100644 index 0000000..39ee4be --- /dev/null +++ b/0014-common-include-test-array-size.c-Avoid-Clang-warning.patch @@ -0,0 +1,64 @@ +From 47d80b6020a739e9f005de24d4928721854da8dc Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 7 Jul 2022 14:06:25 +0100 +Subject: [PATCH] common/include/test-array-size.c: Avoid Clang warning + +On Clang with warn-error enabled: + +test-array-size.c:44:20: error: variable 's0' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration] +static const char *s0[] = { }; + ^ +test-array-size.c:45:20: error: variable 's1' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration] +static const char *s1[] = { "a" }; + ^ + +(etc) + +Updates: commit 0fa23df5cd5dc97a55857416ea81d5de6d867c18 +(cherry picked from commit 90f5dbf78bb56cb00d6b3c58fa0a9b390d50e25e) +--- + common/include/test-array-size.c | 28 +++++++++++++++------------- + 1 file changed, 15 insertions(+), 13 deletions(-) + +diff --git a/common/include/test-array-size.c b/common/include/test-array-size.c +index d77ba3c9..1ce2142c 100644 +--- a/common/include/test-array-size.c ++++ b/common/include/test-array-size.c +@@ -41,19 +41,21 @@ + + struct st { const char *s; int i; }; + +-static const char *s0[] = { }; +-static const char *s1[] = { "a" }; +-static const char *s3[] = { "a", "b", "c" }; +-static const char *s4[4] = { "a", "b", "c", "d" }; +-static int i0[] = { }; +-static int i1[] = { 1 }; +-static int i3[] = { 1, 2, 3 }; +-static int i4[4] = { 1, 2, 3, 4 }; +-static struct st st0[] = { }; +-static struct st st1[] = { { "a", 1 } }; +-static struct st st3[] = { { "a", 1 }, { "b", 2 }, { "c", 3 } }; +-static struct st st4[4] = { { "a", 1 }, { "b", 2 }, { "c", 3 }, { "d", 4 } }; +-static struct st st4_0[4]; ++static const char *s0[] __attribute__((__unused__)) = { }; ++static const char *s1[] __attribute__((__unused__)) = { "a" }; ++static const char *s3[] __attribute__((__unused__)) = { "a", "b", "c" }; ++static const char *s4[4] __attribute__((__unused__)) = { "a", "b", "c", "d" }; ++static int i0[] __attribute__((__unused__)) = { }; ++static int i1[] __attribute__((__unused__)) = { 1 }; ++static int i3[] __attribute__((__unused__)) = { 1, 2, 3 }; ++static int i4[4] __attribute__((__unused__)) = { 1, 2, 3, 4 }; ++static struct st st0[] __attribute__((__unused__)) = { }; ++static struct st st1[] __attribute__((__unused__)) = { { "a", 1 } }; ++static struct st st3[] __attribute__((__unused__)) = ++ { { "a", 1 }, { "b", 2 }, { "c", 3 } }; ++static struct st st4[4] __attribute__((__unused__)) = ++ { { "a", 1 }, { "b", 2 }, { "c", 3 }, { "d", 4 } }; ++static struct st st4_0[4] __attribute__((__unused__)); + + int + main (void) +-- +2.31.1 + diff --git a/0011-ssh-Allow-the-remote-file-to-be-created.patch b/0015-ssh-Allow-the-remote-file-to-be-created.patch similarity index 97% rename from 0011-ssh-Allow-the-remote-file-to-be-created.patch rename to 0015-ssh-Allow-the-remote-file-to-be-created.patch index 626330d..6cc6a77 100644 --- a/0011-ssh-Allow-the-remote-file-to-be-created.patch +++ b/0015-ssh-Allow-the-remote-file-to-be-created.patch @@ -1,4 +1,4 @@ -From 8ca4c61dfa5832e02a86e555d26ce4c31bac9a2a Mon Sep 17 00:00:00 2001 +From d64bfe6d0ceec79ef9979b58a9e3bd179c91ba52 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 15 Apr 2022 12:08:37 +0100 Subject: [PATCH] ssh: Allow the remote file to be created @@ -67,10 +67,10 @@ index 3f401c15..2bc2c4a7 100644 Specify the name or IP address of the remote host. diff --git a/plugins/ssh/ssh.c b/plugins/ssh/ssh.c -index 77cfcf6c..ac9cc230 100644 +index 39d77e44..5e314cd7 100644 --- a/plugins/ssh/ssh.c +++ b/plugins/ssh/ssh.c -@@ -44,12 +44,15 @@ +@@ -44,6 +44,8 @@ #include #include @@ -79,14 +79,15 @@ index 77cfcf6c..ac9cc230 100644 #include #include #include - +@@ -51,6 +53,7 @@ #include + #include "array-size.h" +#include "cleanup.h" #include "const-string-vector.h" #include "minmax.h" -@@ -63,6 +66,9 @@ static const char *known_hosts = NULL; +@@ -64,6 +67,9 @@ static const char *known_hosts = NULL; static const_string_vector identities = empty_vector; static uint32_t timeout = 0; static bool compression = false; diff --git a/0012-readahead-Rewrite-this-filter-so-it-prefetches-using.patch b/0016-readahead-Rewrite-this-filter-so-it-prefetches-using.patch similarity index 99% rename from 0012-readahead-Rewrite-this-filter-so-it-prefetches-using.patch rename to 0016-readahead-Rewrite-this-filter-so-it-prefetches-using.patch index a8c2b96..4199cec 100644 --- a/0012-readahead-Rewrite-this-filter-so-it-prefetches-using.patch +++ b/0016-readahead-Rewrite-this-filter-so-it-prefetches-using.patch @@ -1,4 +1,4 @@ -From e38ee7546c883225ee003285c96dadc54ee4fa99 Mon Sep 17 00:00:00 2001 +From 8dc8ecf751d6cca27ee08f58abb6faac3a3cda94 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 16 Apr 2022 18:39:13 +0100 Subject: [PATCH] readahead: Rewrite this filter so it prefetches using .cache diff --git a/0013-readahead-Fix-test.patch b/0017-readahead-Fix-test.patch similarity index 98% rename from 0013-readahead-Fix-test.patch rename to 0017-readahead-Fix-test.patch index 7aa66a4..60dec48 100644 --- a/0013-readahead-Fix-test.patch +++ b/0017-readahead-Fix-test.patch @@ -1,4 +1,4 @@ -From d1ff7d65048ec2fc7c65a241a15d492e9f2cf718 Mon Sep 17 00:00:00 2001 +From 3a52ccb52f6d6e2d1539a05981158fccfa23f2bd Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 21 Apr 2022 16:14:46 +0100 Subject: [PATCH] readahead: Fix test diff --git a/0014-New-filter-luks.patch b/0018-New-filter-luks.patch similarity index 99% rename from 0014-New-filter-luks.patch rename to 0018-New-filter-luks.patch index f480d47..2aeb4b7 100644 --- a/0014-New-filter-luks.patch +++ b/0018-New-filter-luks.patch @@ -1,4 +1,4 @@ -From 9ec34835216f90a8d0d66c06f6b3395071b1c361 Mon Sep 17 00:00:00 2001 +From 4fa66fba6699f8f2165b379979f59ab53c8b27bb Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 30 Apr 2022 12:35:07 +0100 Subject: [PATCH] New filter: luks diff --git a/0015-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch b/0019-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch similarity index 98% rename from 0015-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch rename to 0019-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch index 8fd0901..f243a79 100644 --- a/0015-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch +++ b/0019-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch @@ -1,4 +1,4 @@ -From 7b09b11d133ecd77a5b27c03b0525f66fd4745d5 Mon Sep 17 00:00:00 2001 +From 2217ff117f800cecd6172b01a6833bd6398ebbc3 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 8 May 2022 12:13:39 +0100 Subject: [PATCH] luks: Disable filter with old GnuTLS in Debian 10 diff --git a/0016-luks-Various-fixes-for-Clang.patch b/0020-luks-Various-fixes-for-Clang.patch similarity index 97% rename from 0016-luks-Various-fixes-for-Clang.patch rename to 0020-luks-Various-fixes-for-Clang.patch index 706efd3..69c190b 100644 --- a/0016-luks-Various-fixes-for-Clang.patch +++ b/0020-luks-Various-fixes-for-Clang.patch @@ -1,4 +1,4 @@ -From 90d4d72b776f880a47d507cd930c98dc7a82647d Mon Sep 17 00:00:00 2001 +From fc8d93e08ff1798d6582a21d517557af4bcb79d9 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 8 May 2022 12:30:09 +0100 Subject: [PATCH] luks: Various fixes for Clang diff --git a/0017-luks-Link-with-libcompat-on-Windows.patch b/0021-luks-Link-with-libcompat-on-Windows.patch similarity index 96% rename from 0017-luks-Link-with-libcompat-on-Windows.patch rename to 0021-luks-Link-with-libcompat-on-Windows.patch index 7e13c53..735caf6 100644 --- a/0017-luks-Link-with-libcompat-on-Windows.patch +++ b/0021-luks-Link-with-libcompat-on-Windows.patch @@ -1,4 +1,4 @@ -From 20a69e48a4e280190179d738b163f30945cb87bb Mon Sep 17 00:00:00 2001 +From b6adfa1cef107c0adb06d280003b2b93f751e068 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 8 May 2022 12:38:00 +0100 Subject: [PATCH] luks: Link with libcompat on Windows diff --git a/0018-luks-Refactor-the-filter.patch b/0022-luks-Refactor-the-filter.patch similarity index 99% rename from 0018-luks-Refactor-the-filter.patch rename to 0022-luks-Refactor-the-filter.patch index 3eb8384..81cfdbe 100644 --- a/0018-luks-Refactor-the-filter.patch +++ b/0022-luks-Refactor-the-filter.patch @@ -1,4 +1,4 @@ -From b329fbd928283ebdce9bb87e8625541beb0d34c9 Mon Sep 17 00:00:00 2001 +From b37b8670455b28b0c337e550137ff562177a8769 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 8 May 2022 16:13:13 +0100 Subject: [PATCH] luks: Refactor the filter diff --git a/0019-tests-luks-Reduce-time-taken-to-run-these-tests.patch b/0023-tests-luks-Reduce-time-taken-to-run-these-tests.patch similarity index 98% rename from 0019-tests-luks-Reduce-time-taken-to-run-these-tests.patch rename to 0023-tests-luks-Reduce-time-taken-to-run-these-tests.patch index 78a367f..994e7ff 100644 --- a/0019-tests-luks-Reduce-time-taken-to-run-these-tests.patch +++ b/0023-tests-luks-Reduce-time-taken-to-run-these-tests.patch @@ -1,4 +1,4 @@ -From 42f95095ffa8ccf28818eed906e35538503c4850 Mon Sep 17 00:00:00 2001 +From ec35192381c45b8fdb954bd2eb10bba304f8dcca Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sun, 8 May 2022 18:05:45 +0100 Subject: [PATCH] tests: luks: Reduce time taken to run these tests diff --git a/0020-Add-nbdkit.parse_size-Python-function.patch b/0024-Add-nbdkit.parse_size-Python-function.patch similarity index 98% rename from 0020-Add-nbdkit.parse_size-Python-function.patch rename to 0024-Add-nbdkit.parse_size-Python-function.patch index e134819..f380577 100644 --- a/0020-Add-nbdkit.parse_size-Python-function.patch +++ b/0024-Add-nbdkit.parse_size-Python-function.patch @@ -1,4 +1,4 @@ -From e6ae2f736e25a1cdc97e4720588a723f5eb8c94b Mon Sep 17 00:00:00 2001 +From ae9a67597a3a4e4a2df93d655265902ec41a189b Mon Sep 17 00:00:00 2001 From: Nikolaus Rath Date: Mon, 9 May 2022 10:04:30 +0100 Subject: [PATCH] Add nbdkit.parse_size() Python function. diff --git a/0021-cache-Fix-cross-reference-nbdkit-readahead-filter.patch b/0025-cache-Fix-cross-reference-nbdkit-readahead-filter.patch similarity index 94% rename from 0021-cache-Fix-cross-reference-nbdkit-readahead-filter.patch rename to 0025-cache-Fix-cross-reference-nbdkit-readahead-filter.patch index 5c9ce02..09dfcc5 100644 --- a/0021-cache-Fix-cross-reference-nbdkit-readahead-filter.patch +++ b/0025-cache-Fix-cross-reference-nbdkit-readahead-filter.patch @@ -1,4 +1,4 @@ -From b2271b0d1b38f7fa77fffa8287e56ba94df62c78 Mon Sep 17 00:00:00 2001 +From 0e71fee19dc2b239cb11f4d879a3276feca48f58 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 14 May 2022 13:47:19 +0100 Subject: [PATCH] cache: Fix cross-reference nbdkit-readahead-filter diff --git a/0022-curl-Don-t-document-curl-plugin-readahead-filter.patch b/0026-curl-Don-t-document-curl-plugin-readahead-filter.patch similarity index 96% rename from 0022-curl-Don-t-document-curl-plugin-readahead-filter.patch rename to 0026-curl-Don-t-document-curl-plugin-readahead-filter.patch index 038e3d4..b148e1b 100644 --- a/0022-curl-Don-t-document-curl-plugin-readahead-filter.patch +++ b/0026-curl-Don-t-document-curl-plugin-readahead-filter.patch @@ -1,4 +1,4 @@ -From d2626f33f44877759a7d94630e3da8dfd31801b8 Mon Sep 17 00:00:00 2001 +From f758d534f4b4f701707c25f128fdde30dfe60c2c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 14 May 2022 14:00:16 +0100 Subject: [PATCH] curl: Don't document curl plugin + readahead filter diff --git a/0023-New-filter-scan.patch b/0027-New-filter-scan.patch similarity index 99% rename from 0023-New-filter-scan.patch rename to 0027-New-filter-scan.patch index 7d077e7..df60ceb 100644 --- a/0023-New-filter-scan.patch +++ b/0027-New-filter-scan.patch @@ -1,4 +1,4 @@ -From e807d37b9006a5284f60c092a3dae0787a0b30ee Mon Sep 17 00:00:00 2001 +From 9455de457dfced4ea247b0b5848e3d7fd748fb64 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 14 May 2022 13:46:56 +0100 Subject: [PATCH] New filter: scan diff --git a/0024-scan-Remove-condition-variable.patch b/0028-scan-Remove-condition-variable.patch similarity index 97% rename from 0024-scan-Remove-condition-variable.patch rename to 0028-scan-Remove-condition-variable.patch index cfe90e6..0b085d2 100644 --- a/0024-scan-Remove-condition-variable.patch +++ b/0028-scan-Remove-condition-variable.patch @@ -1,4 +1,4 @@ -From 120bad475468b0a2e2aa2effbd1e51dd04621ce9 Mon Sep 17 00:00:00 2001 +From fc1094e63f2c23667e4f04a0f8e513855242d845 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 14 May 2022 18:54:32 +0100 Subject: [PATCH] scan: Remove condition variable diff --git a/0025-scan-Small-typographical-fix-in-manual.patch b/0029-scan-Small-typographical-fix-in-manual.patch similarity index 96% rename from 0025-scan-Small-typographical-fix-in-manual.patch rename to 0029-scan-Small-typographical-fix-in-manual.patch index d3d010d..e446edb 100644 --- a/0025-scan-Small-typographical-fix-in-manual.patch +++ b/0029-scan-Small-typographical-fix-in-manual.patch @@ -1,4 +1,4 @@ -From 542e0f33a76a232006b53569201a9b01fbcc36cb Mon Sep 17 00:00:00 2001 +From 337d8bbe3f6f03631e2a4df05cf63d586d9eeeea Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 14 May 2022 19:02:48 +0100 Subject: [PATCH] scan: Small typographical fix in manual diff --git a/0026-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch b/0030-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch similarity index 94% rename from 0026-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch rename to 0030-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch index 1b2be83..043cbc1 100644 --- a/0026-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch +++ b/0030-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch @@ -1,4 +1,4 @@ -From 66346327f756ba83c8e3ad402b8ff8f67371f335 Mon Sep 17 00:00:00 2001 +From a11e0ecf22a4dff319fb679f67cb51594069e6df Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 14 May 2022 20:57:38 +0100 Subject: [PATCH] ssh: Don't reference readahead or scan filters from this diff --git a/0027-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch b/0031-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch similarity index 96% rename from 0027-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch rename to 0031-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch index 531174c..524fee0 100644 --- a/0027-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch +++ b/0031-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch @@ -1,4 +1,4 @@ -From 40b1785850d62bd1c5ed72121f0d505bb94173f5 Mon Sep 17 00:00:00 2001 +From b892407cda17f6e13e93be65b04b25b10b628714 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 17 May 2022 13:20:17 +0100 Subject: [PATCH] scan: Fix bound so we don't try to prefetch beyond end of diff --git a/0028-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch b/0032-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch similarity index 98% rename from 0028-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch rename to 0032-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch index 9769fe5..d954246 100644 --- a/0028-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch +++ b/0032-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch @@ -1,4 +1,4 @@ -From 3c200a0232a6f49a65e76ef84cb067a49fd70676 Mon Sep 17 00:00:00 2001 +From 944a788490b88a7543052206c50de15f02b75206 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 10 Jun 2022 22:11:44 +0100 Subject: [PATCH] tests: Add a regression test for LUKS zeroing crash diff --git a/0029-rate-Allow-burstiness-to-be-controlled.patch b/0033-rate-Allow-burstiness-to-be-controlled.patch similarity index 98% rename from 0029-rate-Allow-burstiness-to-be-controlled.patch rename to 0033-rate-Allow-burstiness-to-be-controlled.patch index b950d68..9999be9 100644 --- a/0029-rate-Allow-burstiness-to-be-controlled.patch +++ b/0033-rate-Allow-burstiness-to-be-controlled.patch @@ -1,4 +1,4 @@ -From b352e5f705d408facfb9798ef30c58db64a477c4 Mon Sep 17 00:00:00 2001 +From 97ce9ab67bc2e38461160e8c9183cc8d74fdc3a1 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 11 Jun 2022 12:34:02 +0100 Subject: [PATCH] rate: Allow burstiness to be controlled diff --git a/nbdkit.spec b/nbdkit.spec index 67e5891..05082b5 100644 --- a/nbdkit.spec +++ b/nbdkit.spec @@ -53,7 +53,7 @@ ExclusiveArch: x86_64 Name: nbdkit Version: 1.30.6 -Release: 2%{?dist} +Release: 3%{?dist} Summary: NBD server License: BSD @@ -88,25 +88,29 @@ Patch0007: 0007-server-Display-kTLS-setting-in-debug-output.patch Patch0008: 0008-server-Work-around-incorrect-include-in-gnutls-socke.patch Patch0009: 0009-tests-test-parallel-sh.sh-Small-cleanups.patch Patch0010: 0010-tests-test-parallel-sh.sh-Skip-test-under-valgrind-d.patch -Patch0011: 0011-ssh-Allow-the-remote-file-to-be-created.patch -Patch0012: 0012-readahead-Rewrite-this-filter-so-it-prefetches-using.patch -Patch0013: 0013-readahead-Fix-test.patch -Patch0014: 0014-New-filter-luks.patch -Patch0015: 0015-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch -Patch0016: 0016-luks-Various-fixes-for-Clang.patch -Patch0017: 0017-luks-Link-with-libcompat-on-Windows.patch -Patch0018: 0018-luks-Refactor-the-filter.patch -Patch0019: 0019-tests-luks-Reduce-time-taken-to-run-these-tests.patch -Patch0020: 0020-Add-nbdkit.parse_size-Python-function.patch -Patch0021: 0021-cache-Fix-cross-reference-nbdkit-readahead-filter.patch -Patch0022: 0022-curl-Don-t-document-curl-plugin-readahead-filter.patch -Patch0023: 0023-New-filter-scan.patch -Patch0024: 0024-scan-Remove-condition-variable.patch -Patch0025: 0025-scan-Small-typographical-fix-in-manual.patch -Patch0026: 0026-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch -Patch0027: 0027-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch -Patch0028: 0028-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch -Patch0029: 0029-rate-Allow-burstiness-to-be-controlled.patch +Patch0011: 0011-common-include-Add-ARRAY_SIZE-macro.patch +Patch0012: 0012-Use-ARRAY_SIZE-macro-in-various-places-in-nbdkit.patch +Patch0013: 0013-vddk-Demote-another-phone-home-error-message-to-debu.patch +Patch0014: 0014-common-include-test-array-size.c-Avoid-Clang-warning.patch +Patch0015: 0015-ssh-Allow-the-remote-file-to-be-created.patch +Patch0016: 0016-readahead-Rewrite-this-filter-so-it-prefetches-using.patch +Patch0017: 0017-readahead-Fix-test.patch +Patch0018: 0018-New-filter-luks.patch +Patch0019: 0019-luks-Disable-filter-with-old-GnuTLS-in-Debian-10.patch +Patch0020: 0020-luks-Various-fixes-for-Clang.patch +Patch0021: 0021-luks-Link-with-libcompat-on-Windows.patch +Patch0022: 0022-luks-Refactor-the-filter.patch +Patch0023: 0023-tests-luks-Reduce-time-taken-to-run-these-tests.patch +Patch0024: 0024-Add-nbdkit.parse_size-Python-function.patch +Patch0025: 0025-cache-Fix-cross-reference-nbdkit-readahead-filter.patch +Patch0026: 0026-curl-Don-t-document-curl-plugin-readahead-filter.patch +Patch0027: 0027-New-filter-scan.patch +Patch0028: 0028-scan-Remove-condition-variable.patch +Patch0029: 0029-scan-Small-typographical-fix-in-manual.patch +Patch0030: 0030-ssh-Don-t-reference-readahead-or-scan-filters-from-t.patch +Patch0031: 0031-scan-Fix-bound-so-we-don-t-try-to-prefetch-beyond-en.patch +Patch0032: 0032-tests-Add-a-regression-test-for-LUKS-zeroing-crash.patch +Patch0033: 0033-rate-Allow-burstiness-to-be-controlled.patch # For automatic RPM Provides generation. # See: https://rpm-software-management.github.io/rpm/manual/dependency_generators.html @@ -1214,7 +1218,7 @@ export LIBGUESTFS_TRACE=1 %changelog -* Wed Jul 06 2022 Richard W.M. Jones - 1.30.6-2 +* Thu Jul 07 2022 Richard W.M. Jones - 1.30.6-3 - Rebase to new stable branch version 1.30.6 resolves: rhbz#2059289 - Add automatic provides generator and subpackage nbdkit-srpm-macros @@ -1235,6 +1239,11 @@ export LIBGUESTFS_TRACE=1 - Backport new scan filter from 1.32. - Add new Python binding for nbdkit_parse_size from 1.32 - Add new rate filter burstiness setting from 1.32 +- vddk: Suppress new VDDK "phone home" messages + resolves: rhbz#2104720 +- vddk: Clearer error message when thumbprint is wrong + resolves: rhbz#1905772 +- Fix memory allocator=malloc,mlock=true (2044432) * Mon Jan 24 2022 Richard W.M. Jones - 1.28.5-1 - Rebase to new stable branch version 1.28.5