On Thu, May 06, 2021 at 08:59:38PM -0500, Eric Blake wrote:
diff --git a/server/backend.c b/server/backend.c index 2244df7a..73994f56 100644 --- a/server/backend.c +++ b/server/backend.c @@ -234,24 +234,37 @@ static struct nbdkit_next_ops next_ops = { };
struct context * -backend_open (struct backend *b, int readonly, const char *exportname) +backend_open (struct backend *b, int readonly, const char *exportname, + int shared) { - GET_CONN; - struct context *c = malloc (sizeof *c); - PUSH_CONTEXT_FOR_SCOPE (c); + struct connection *conn = threadlocal_get_conn (); + bool using_tls; + struct context *c;
+ if (!shared && !conn) { + nbdkit_error ("attempt to open non-shared context outside a connection"); + return NULL;
Not abort ()? Wouldn't this indicate a bug in a filter? Complicated, but looks good. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v