diff options
author | ngie <ngie@FreeBSD.org> | 2015-11-09 08:03:15 +0000 |
---|---|---|
committer | ngie <ngie@FreeBSD.org> | 2015-11-09 08:03:15 +0000 |
commit | f79bd9b3f6cedee7f34a06616fc54a763fc8bebb (patch) | |
tree | 2a550730d369ccba44c5f3724e56b65c7de0149c /usr.sbin | |
parent | bc7ac4fb8b33cd5246288789bfc68e6bdc1eb9a2 (diff) | |
download | FreeBSD-src-f79bd9b3f6cedee7f34a06616fc54a763fc8bebb.zip FreeBSD-src-f79bd9b3f6cedee7f34a06616fc54a763fc8bebb.tar.gz |
MFC r289687,r289693:
r289687:
Free buffer before returning from cd9660_write_path_table to avoid
leaking it after returning from the function
PR: 203647
Submitted by: Thomas Schmitt <scdbackup@gmx.net>
Coverity CID: 978431
Sponsored by: EMC / Isilon Storage Division
r289693:
Unbreak makefs -t cd9660 after r289687
buffer_head needs to be freed -- not buffer
Detected by jemalloc, i.e. running makefs failed the arena assert
because my copy of malloc on CURRENT is compiled with the default
!MALLOC_PRODUCTION asserts on
Pointyhat to: ngie
PR: 203647
Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/makefs/cd9660/cd9660_write.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/makefs/cd9660/cd9660_write.c b/usr.sbin/makefs/cd9660/cd9660_write.c index f27a76f..e17752a 100644 --- a/usr.sbin/makefs/cd9660/cd9660_write.c +++ b/usr.sbin/makefs/cd9660/cd9660_write.c @@ -165,7 +165,7 @@ cd9660_write_path_table(FILE *fd, off_t sector, int mode) diskStructure.pathTableLength); unsigned char *buffer; unsigned char *buffer_head; - int len; + int len, ret; path_table_entry temp_entry; cd9660node *ptcur; @@ -213,8 +213,10 @@ cd9660_write_path_table(FILE *fd, off_t sector, int mode) ptcur = ptcur->ptnext; } - return cd9660_write_filedata(fd, sector, buffer_head, + ret = cd9660_write_filedata(fd, sector, buffer_head, path_table_sectors); + free(buffer_head); + return ret; } |