[Libguestfs] [PATCH 2/2] lib: use guestfs_int_make_temp_path to generate temporary files
Richard W.M. Jones
rjones at redhat.com
Sun Dec 11 19:28:11 UTC 2016
On Sun, Dec 11, 2016 at 08:02:23PM +0200, Matteo Cafasso wrote:
> Signed-off-by: Matteo Cafasso <noxdafox at gmail.com>
> ---
> src/drives.c | 5 ++---
> src/file.c | 22 +++++++++-------------
> src/journal.c | 4 ++--
> src/tsk.c | 17 ++---------------
> 4 files changed, 15 insertions(+), 33 deletions(-)
>
> diff --git a/src/drives.c b/src/drives.c
> index 1e3b0af..1e04f81 100644
> --- a/src/drives.c
> +++ b/src/drives.c
> @@ -421,7 +421,8 @@ create_drive_dev_null (guestfs_h *g,
> data->format = "raw";
> }
>
> - if (guestfs_int_lazy_make_tmpdir (g) == -1)
> + tmpfile = guestfs_int_make_temp_path (g, "devnull");
> + if (tmpfile == NULL)
> return NULL;
>
> /* Because we create a special file, there is no point forcing qemu
> @@ -429,8 +430,6 @@ create_drive_dev_null (guestfs_h *g,
> */
> data->readonly = false;
>
> - tmpfile = safe_asprintf (g, "%s/devnull%d", g->tmpdir, ++g->unique);
> -
> if (guestfs_disk_create (g, tmpfile, "raw", 4096, -1) == -1)
> return NULL;
>
> diff --git a/src/file.c b/src/file.c
> index d57c4e1..53b859d 100644
> --- a/src/file.c
> +++ b/src/file.c
> @@ -86,11 +86,10 @@ guestfs_impl_read_file (guestfs_h *g, const char *path, size_t *size_r)
> char *ret = NULL;
> struct stat statbuf;
>
> - if (guestfs_int_lazy_make_tmpdir (g) == -1)
> + tmpfile = guestfs_int_make_temp_path (g, "cat");
> + if (tmpfile == NULL)
> goto err;
>
> - tmpfile = safe_asprintf (g, "%s/cat%d", g->tmpdir, ++g->unique);
> -
> if (guestfs_download (g, path, tmpfile) == -1)
> goto err;
>
> @@ -213,11 +212,10 @@ guestfs_impl_find (guestfs_h *g, const char *directory)
> char **ret = NULL;
> size_t i, count, size;
>
> - if (guestfs_int_lazy_make_tmpdir (g) == -1)
> + tmpfile = guestfs_int_make_temp_path (g, "find");
> + if (tmpfile == NULL)
> goto err;
>
> - tmpfile = safe_asprintf (g, "%s/find%d", g->tmpdir, ++g->unique);
> -
> if (guestfs_find0 (g, directory, tmpfile) == -1)
> goto err;
>
> @@ -317,11 +315,10 @@ write_or_append (guestfs_h *g, const char *path,
> (!append ? guestfs_internal_write : guestfs_internal_write_append)
> (g, path, content, size);
>
> - if (guestfs_int_lazy_make_tmpdir (g) == -1)
> - goto err;
> -
> /* Write the content out to a temporary file. */
> - tmpfile = safe_asprintf (g, "%s/write%d", g->tmpdir, ++g->unique);
> + tmpfile = guestfs_int_make_temp_path (g, "write");
> + if (tmpfile == NULL)
> + goto err;
>
> fd = open (tmpfile, O_WRONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, 0600);
> if (fd == -1) {
> @@ -515,11 +512,10 @@ guestfs_impl_ls (guestfs_h *g, const char *directory)
> char **ret = NULL;
> size_t i, count, size;
>
> - if (guestfs_int_lazy_make_tmpdir (g) == -1)
> + tmpfile = guestfs_int_make_temp_path (g, "ls");
> + if (tmpfile == NULL)
> goto err;
>
> - tmpfile = safe_asprintf (g, "%s/ls%d", g->tmpdir, ++g->unique);
> -
> if (guestfs_ls0 (g, directory, tmpfile) == -1)
> goto err;
>
> diff --git a/src/journal.c b/src/journal.c
> index 22b81de..f36e661 100644
> --- a/src/journal.c
> +++ b/src/journal.c
> @@ -66,10 +66,10 @@ guestfs_impl_journal_get (guestfs_h *g)
> size_t i, j, size;
> uint64_t len;
>
> - if (guestfs_int_lazy_make_tmpdir (g) == -1)
> + tmpfile = guestfs_int_make_temp_path (g, "journal");
> + if (tmpfile == NULL)
> goto err;
>
> - tmpfile = safe_asprintf (g, "%s/journal%d", g->tmpdir, ++g->unique);
> if (guestfs_internal_journal_get (g, tmpfile) == -1)
> goto err;
>
> diff --git a/src/tsk.c b/src/tsk.c
> index 1def9c9..da9ca8d 100644
> --- a/src/tsk.c
> +++ b/src/tsk.c
> @@ -36,7 +36,6 @@
>
> static struct guestfs_tsk_dirent_list *parse_dirent_file (guestfs_h *, const char *);
> static int deserialise_dirent_list (guestfs_h *, FILE *, struct guestfs_tsk_dirent_list *);
> -static char *make_temp_file (guestfs_h *, const char *);
>
> struct guestfs_tsk_dirent_list *
> guestfs_impl_filesystem_walk (guestfs_h *g, const char *mountable)
> @@ -44,7 +43,7 @@ guestfs_impl_filesystem_walk (guestfs_h *g, const char *mountable)
> int ret = 0;
> CLEANUP_UNLINK_FREE char *tmpfile = NULL;
>
> - tmpfile = make_temp_file (g, "filesystem_walk");
> + tmpfile = guestfs_int_make_temp_path (g, "filesystem_walk");
> if (tmpfile == NULL)
> return NULL;
>
> @@ -61,7 +60,7 @@ guestfs_impl_find_inode (guestfs_h *g, const char *mountable, int64_t inode)
> int ret = 0;
> CLEANUP_UNLINK_FREE char *tmpfile = NULL;
>
> - tmpfile = make_temp_file (g, "find_inode");
> + tmpfile = guestfs_int_make_temp_path (g, "find_inode");
> if (tmpfile == NULL)
> return NULL;
>
> @@ -142,15 +141,3 @@ deserialise_dirent_list (guestfs_h *g, FILE *fp,
>
> return ret ? 0 : -1;
> }
> -
> -static char *
> -make_temp_file (guestfs_h *g, const char *name)
> -{
> - int ret = 0;
> -
> - ret = guestfs_int_lazy_make_tmpdir (g);
> - if (ret < 0)
> - return NULL;
> -
> - return safe_asprintf (g, "%s/%s%d", g->tmpdir, name, ++g->unique);
> -}
> --
> 2.10.2
ACK (both patches).
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages. http://libguestfs.org
More information about the Libguestfs
mailing list