From 0b349f6f34f1fff58ab9748277a093f70df2be33 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Thu, 19 Dec 2019 14:51:18 -0500 Subject: acme: report close failure during Put --- src/cmd/acme/exec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/cmd/acme') diff --git a/src/cmd/acme/exec.c b/src/cmd/acme/exec.c index ff491601..1d50f92f 100644 --- a/src/cmd/acme/exec.c +++ b/src/cmd/acme/exec.c @@ -699,7 +699,7 @@ putfile(File *f, int q0, int q1, Rune *namer, int nname) Rune *r; Biobuf *b; char *s, *name; - int i, fd, q; + int i, fd, q, ret; Dir *d, *d1; Window *w; int isapp; @@ -762,9 +762,13 @@ putfile(File *f, int q0, int q1, Rune *namer, int nname) warning(nil, "can't write file %s: %r\n", name); goto Rescue2; } - Bterm(b); + ret = Bterm(b); free(b); b = nil; + if(ret < 0) { + warning(nil, "can't write file %s: %r\n", name); + goto Rescue2; // flush or close failed + } if(runeeq(namer, nname, f->name, f->nname)){ if(q0!=0 || q1!=f->b.nc){ f->mod = TRUE; -- cgit v1.2.3