summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc/untar/untar.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libmisc/untar/untar.c')
-rw-r--r--cpukit/libmisc/untar/untar.c14
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 */