diff options
Diffstat (limited to '')
-rw-r--r-- | cpukit/libmisc/untar/untar.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/cpukit/libmisc/untar/untar.c b/cpukit/libmisc/untar/untar.c index b31eec9077..2c5c8e9cf3 100644 --- a/cpukit/libmisc/untar/untar.c +++ b/cpukit/libmisc/untar/untar.c @@ -254,7 +254,7 @@ Untar_FromFile( { int fd; char *bufr; - size_t n; + ssize_t n; char fname[100]; char linkname[100]; int sum; @@ -265,15 +265,17 @@ Untar_FromFile( unsigned long size; unsigned char linkflag; - retval = UNTAR_SUCCESSFUL; + + if ((fd = open(tar_name, O_RDONLY)) < 0) { + return UNTAR_FAIL; + } + bufr = (char *)malloc(512); - if (bufr == NULL) - { + if (bufr == NULL) { return(UNTAR_FAIL); } - - fd = open(tar_name, O_RDONLY); + while (1) { /* Read the header */ |