diff --git a/usr.bin/sed/main.c b/usr.bin/sed/main.c index dafb0bd845ef..36a32996a130 100644 --- a/usr.bin/sed/main.c +++ b/usr.bin/sed/main.c @@ -409,10 +409,10 @@ mf_fgets(SPACE *sp, enum e_spflag spflag) if (len >= (ssize_t)sizeof(tmpfname)) errx(1, "%s: name too long", fname); unlink(tmpfname); - if ((outfile = fopen(tmpfname, "w")) == NULL) - err(1, "%s", fname); if (outfile != NULL && outfile != stdout) fclose(outfile); + if ((outfile = fopen(tmpfname, "w")) == NULL) + err(1, "%s", fname); fchown(fileno(outfile), sb.st_uid, sb.st_gid); fchmod(fileno(outfile), sb.st_mode & ALLPERMS); outfname = tmpfname;