diff options
author | pjd <pjd@FreeBSD.org> | 2004-02-05 08:39:38 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2004-02-05 08:39:38 +0000 |
commit | 38bd67169dd86a3ba8164dd28f6a04d622b37d4c (patch) | |
tree | 27804bedebbf55cae4d4f4c72a2e4285f9cf31cc /sbin/gbde | |
parent | e7d6996c0b8f1812a868fd13e10979e1ebf398fb (diff) | |
download | FreeBSD-src-38bd67169dd86a3ba8164dd28f6a04d622b37d4c.zip FreeBSD-src-38bd67169dd86a3ba8164dd28f6a04d622b37d4c.tar.gz |
Fixed some non-critical memory leaks and one temporary file leak
(theoretical).
Approved by: phk, scottl (mentor)
Diffstat (limited to 'sbin/gbde')
-rw-r--r-- | sbin/gbde/gbde.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sbin/gbde/gbde.c b/sbin/gbde/gbde.c index e5483db..d038e7b 100644 --- a/sbin/gbde/gbde.c +++ b/sbin/gbde/gbde.c @@ -362,6 +362,7 @@ cmd_nuke(struct g_bde_key *gl, int dfd , int key) if (offset2 != offset) err(1, "lseek"); i = write(dfd, sbuf, gl->sectorsize); + free(sbuf); if (i != (int)gl->sectorsize) err(1, "write"); printf("Nuked key %d\n", key); @@ -444,6 +445,7 @@ cmd_write(struct g_bde_key *gl, struct g_bde_softc *sc, int dfd , int key, const if (i != (int)gl->sectorsize) err(1, "write"); printf("Wrote key %d at %jd\n", key, (intmax_t)offset); + free(sbuf); #if 0 printf("s0 = %jd\n", (intmax_t)gl->sector0); printf("sN = %jd\n", (intmax_t)gl->sectorN); @@ -518,8 +520,10 @@ cmd_init(struct g_bde_key *gl, int dfd, const char *f_opt, int i_opt, const char if (p == NULL) p = "vi"; if (snprintf(cbuf, sizeof(cbuf), "%s %s\n", p, q) >= - (ssize_t)sizeof(cbuf)) + (ssize_t)sizeof(cbuf)) { + unlink(q); errx(1, "EDITOR is too long"); + } system(cbuf); } i = open(q, O_RDONLY); @@ -528,6 +532,7 @@ cmd_init(struct g_bde_key *gl, int dfd, const char *f_opt, int i_opt, const char params = properties_read(i); close (i); unlink(q); + free(q); } /* <sector_size> */ |