summaryrefslogtreecommitdiffstats
path: root/isys/cpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'isys/cpio.c')
-rw-r--r--isys/cpio.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/isys/cpio.c b/isys/cpio.c
index 06e41502f..87631d8f6 100644
--- a/isys/cpio.c
+++ b/isys/cpio.c
@@ -10,8 +10,8 @@
int installCpioFile(FD_t fd, char * cpioName, char * outName, int inWin) {
struct cpioFileMapping map;
int rc;
- char * failedFile;
- CFD_t cfdbuf, *cfd = &cfdbuf;
+ const char * failedFile;
+ FD_t cfd;
if (outName) {
map.archivePath = cpioName;
@@ -19,12 +19,12 @@ int installCpioFile(FD_t fd, char * cpioName, char * outName, int inWin) {
map.mapFlags = CPIO_MAP_PATH;
}
- cfd->cpioIoType = cpioIoTypeGzFd;
- cfd->cpioGzFd = gzdFdopen(fdDup(fdFileno(fd)), "r");
-
+ (void) Fflush(fd);
+ cfd = Fdopen(fdDup(Fileno(fd)), "r.gzdio");
+
rc = cpioInstallArchive(cfd, outName ? &map : NULL, 1, NULL, NULL,
&failedFile);
- gzdClose(cfd->cpioGzFd);
+ Fclose(cfd);
if (rc || access(outName, R_OK)) {
return -1;