summaryrefslogtreecommitdiff
path: root/sys/src/cmd/git/pack.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/src/cmd/git/pack.c')
-rw-r--r--sys/src/cmd/git/pack.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/src/cmd/git/pack.c b/sys/src/cmd/git/pack.c
index 2ffcdec57..c5519c7ab 100644
--- a/sys/src/cmd/git/pack.c
+++ b/sys/src/cmd/git/pack.c
@@ -197,23 +197,22 @@ loadpack(Packf *pf, char *name)
}
}
if((ifd = open(buf, OREAD)) == -1)
- goto error;
- if((d = dirfstat(ifd)) == nil)
- goto error;
+ return -1;
+ if((d = dirfstat(ifd)) == nil){
+ close(ifd);
+ return -1;
+ }
pf->nidx = d->length;
pf->idx = emalloc(pf->nidx);
if(readn(ifd, pf->idx, pf->nidx) != pf->nidx){
+ close(ifd);
free(pf->idx);
free(d);
- goto error;
+ return -1;
}
+ close(ifd);
free(d);
return 0;
-
-error:
- if(ifd != -1)
- close(ifd);
- return -1;
}
static void