[Libguestfs] [PATCH nbdkit] server: Add -D nbdkit.environ=1 to dump the environment
Richard W.M. Jones
rjones at redhat.com
Mon May 8 21:26:53 UTC 2023
On Mon, May 08, 2023 at 08:35:53AM -0500, Eric Blake wrote:
> On Sun, May 07, 2023 at 11:43:17AM +0100, Richard W.M. Jones wrote:
> > This is not secure so should not be used routinely. Also we do not
> > attempt to filter environment variables, so even ones containing
> > multiple lines or special characters are all sent to nbdkit_debug.
> >
> > The reason for adding this is to allow for debugging the new
> > nbd_set_socket_activation_name(3) API added in libnbd 1.16.
> > ---
>
> > +static void
> > +dump_environment (void)
> > +{
> > + size_t i;
> > +
> > + for (i = 0; environ[i]; ++i)
> > + nbdkit_debug ("%s", environ[i]);
>
> We have shell_quote in common/utils/quote.c; shouldn't we use it here
> to avoid ambiguities when an env-var contains newline?
I was wondering more generally about this. I actually think that
nbdkit_debug ought to be more tolerant of unusual inputs -- not least
because there are potential security concerns. All kinds of random
user-controlled strings are sent to nbdkit_debug and it just dumps it
to stderr entirely unfiltered. So rather than fixing this one
instance, we should fix nbdkit_debug. I'll look at a follow-up patch.
> > +}
> > +
> > +#endif /* !WIN32 */
> > +
> > int
> > main (int argc, char *argv[])
> > {
> > @@ -662,6 +682,14 @@ main (int argc, char *argv[])
> > /* Check all debug flags were used, and free them. */
> > free_debug_flags ();
> >
> > +#ifndef WIN32
> > + /* Dump the environment if asked. This is the earliest we can do it
> > + * because it uses a debug flag.
> > + */
> > + if (nbdkit_debug_environ && verbose)
> > + dump_environment ();
>
> Why does this not work on WIN32?
I just assumed it wouldn't, but you're right that it would work.
I'll respin this patch once I've tested what it would do on Windows.
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
nbdkit - Flexible, fast NBD server with plugins
https://gitlab.com/nbdkit/nbdkit
More information about the Libguestfs
mailing list