[Libguestfs] [PATCH nbdkit 2/2] tar: Rewrite the tar plugin (again), this time in C.
Richard W.M. Jones
rjones at redhat.com
Sun Jun 28 13:12:04 UTC 2020
On Sun, Jun 28, 2020 at 02:02:51PM +0100, Richard W.M. Jones wrote:
> +static void *
> +tar_open (int readonly)
> +{
> + struct handle *h;
> +
> + assert (offset > 0); /* Cannot be zero because of tar header. */
> +
> + h = calloc (1, sizeof *h);
> + if (h == NULL) {
> + nbdkit_error ("calloc: %m");
> + return NULL;
> + }
> + h->fd = open (tarfile, (readonly ? O_RDONLY : O_RDWR) | O_CLOEXEC);
> + if (h->fd == -1) {
> + nbdkit_error ("%s: %m", tarfile);
> + free (h);
> + return NULL;
> + }
> +
> + return h;
> +}
Oops, I forgot to close the file descriptor, so this needs an
accompanying close callback:
static void
tar_close (void *handle)
{
struct handle *h = handle;
close (h->fd);
}
Rich.
--
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
More information about the Libguestfs
mailing list