[Libguestfs] [nbdkit PATCH] file: Diagnose a missing file earlier

Richard W.M. Jones rjones at redhat.com
Wed Nov 22 13:13:16 UTC 2017


On Tue, Nov 21, 2017 at 04:45:14PM -0600, Eric Blake wrote:
> If a user typos the filename for the file plugin, they do not
> find out about it until later when the first client gets an
> abrupt hangup, when file_open() fails to open things.  Better
> is to avoid starting a server at all if the file doesn't exist
> yet.
> 
> While at it, avoid a memory leak if the caller passes a file=
> argument more than once.
> 
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
>  plugins/file/file.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/plugins/file/file.c b/plugins/file/file.c
> index ef5da3d..4a91251 100644
> --- a/plugins/file/file.c
> +++ b/plugins/file/file.c
> @@ -117,6 +117,7 @@ file_config (const char *key, const char *value)
>  {
>    if (strcmp (key, "file") == 0) {
>      /* See FILENAMES AND PATHS in nbdkit-plugin(3). */
> +    free (filename);
>      filename = nbdkit_absolute_path (value);
>      if (!filename)
>        return -1;
> @@ -147,6 +148,10 @@ file_config_complete (void)
>      nbdkit_error ("you must supply the file=<FILENAME> parameter after the plugin name on the command line");
>      return -1;
>    }
> +  if (access (filename, F_OK) < 0) {
> +    nbdkit_error ("access '%s': %m", filename);
> +    return -1;
> +  }
> 

ACK.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top




More information about the Libguestfs mailing list