summaryrefslogtreecommitdiff
path: root/sys/src/cmd/patch.c
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2022-10-03 05:51:24 +0000
committerMichael Forney <mforney@mforney.org>2022-10-03 05:51:24 +0000
commit8f1867a19f7ca881a32878dcee08ddce11b5db36 (patch)
tree8c8362e969c0d3e8502235b9c636702edc90b45c /sys/src/cmd/patch.c
parent3ebeabebde7cb1758666cab32a73658f516bb199 (diff)
patch: fix uninitialized Fbuf during dry run
Diffstat (limited to 'sys/src/cmd/patch.c')
-rw-r--r--sys/src/cmd/patch.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/src/cmd/patch.c b/sys/src/cmd/patch.c
index 7b25285cb..def9f05ca 100644
--- a/sys/src/cmd/patch.c
+++ b/sys/src/cmd/patch.c
@@ -568,10 +568,11 @@ apply(Patch *p, char *fname)
for(i = 0; i < p->nhunk; i++){
h = &p->hunk[i];
if(curfile == nil || strcmp(curfile, h->newpath) != 0){
- if(!dryrun)
+ if(!dryrun){
slurp(&f, h->oldpath);
+ e = f.buf;
+ }
curfile = h->newpath;
- e = f.buf;
}
if(!dryrun){
s = e;
@@ -581,7 +582,8 @@ apply(Patch *p, char *fname)
e += h->oldlen;
}
if(i+1 == p->nhunk || strcmp(curfile, p->hunk[i+1].newpath) != 0){
- o = append(o, &osz, e, f.buf + f.len);
+ if(!dryrun)
+ o = append(o, &osz, e, f.buf + f.len);
blat(h->oldpath, h->newpath, o, osz);
osz = 0;
}