summaryrefslogtreecommitdiffstats
path: root/bin/ed
diff options
context:
space:
mode:
authorbrueffer <brueffer@FreeBSD.org>2011-08-27 15:28:57 +0000
committerbrueffer <brueffer@FreeBSD.org>2011-08-27 15:28:57 +0000
commitb95e8ce3cf932ea596e69b6d6a2f9a8278114f13 (patch)
treecfb5f8cd39ff7488b27fbfb054f1bfa5b3b2c678 /bin/ed
parent55dd870b96d9c6061c2eff00ceaddd2a509b4919 (diff)
downloadFreeBSD-src-b95e8ce3cf932ea596e69b6d6a2f9a8278114f13.zip
FreeBSD-src-b95e8ce3cf932ea596e69b6d6a2f9a8278114f13.tar.gz
Fix memory leaks in error cases.
PR: 159011 Submitted by: Henning Petersen <henning.petersen@t-online.de> Approved by: re (kib) MFC after: 1 week
Diffstat (limited to 'bin/ed')
-rw-r--r--bin/ed/buf.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/bin/ed/buf.c b/bin/ed/buf.c
index db1f0e9..b4b78a5 100644
--- a/bin/ed/buf.c
+++ b/bin/ed/buf.c
@@ -94,6 +94,7 @@ put_sbuf_line(const char *cs)
;
if (s - cs >= LINECHARS) {
errmsg = "line too long";
+ free(lp);
return NULL;
}
len = s - cs;
@@ -102,6 +103,7 @@ put_sbuf_line(const char *cs)
if (fseeko(sfp, (off_t)0, SEEK_END) < 0) {
fprintf(stderr, "%s\n", strerror(errno));
errmsg = "cannot seek temp file";
+ free(lp);
return NULL;
}
sfseek = ftello(sfp);
@@ -112,6 +114,7 @@ put_sbuf_line(const char *cs)
sfseek = -1;
fprintf(stderr, "%s\n", strerror(errno));
errmsg = "cannot write temp file";
+ free(lp);
return NULL;
}
lp->len = len;
OpenPOWER on IntegriCloud