[Libguestfs] [PATCH v2] copy-in: error out early if the localpath does not exist

Richard W.M. Jones rjones at redhat.com
Wed Sep 30 08:54:23 UTC 2015


On Wed, Sep 30, 2015 at 10:38:57AM +0200, Pino Toscano wrote:
> ---
>  src/copy-in-out.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/copy-in-out.c b/src/copy-in-out.c
> index d5e7fb0..89344d8 100644
> --- a/src/copy-in-out.c
> +++ b/src/copy-in-out.c
> @@ -46,6 +46,12 @@ guestfs_impl_copy_in (guestfs_h *g,
>    size_t buf_len = strlen (localpath) + 1;
>    char buf[buf_len];
>    const char *dirname, *basename;
> +  struct stat statbuf;
> +
> +  if (stat (localpath, &statbuf) == -1) {
> +    error (g, _("source '%s' does not exist (or cannot be read)"), localpath);
> +    return -1;
> +  }
>  
>    int remote_is_dir = guestfs_is_dir (g, remotedir);
>    if (remote_is_dir == -1)
> -- 
> 2.1.0

ACK, probably.  The current message isn't too bad:

$ ./run guestfish -N fs -m /dev/sda1 copy-in /tmp/foobar /
libguestfs: error: tar subprocess failed: tar: foobar: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/




More information about the Libguestfs mailing list