projects
/
openwrt
/
staging
/
linusw.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
4a77a06
)
firmware-utils/hcsmakeimage: fix possible memory leak and resource leaks
author
Andrea Dalla Costa
<andrea@dallacosta.me>
Sat, 11 Jan 2020 21:57:58 +0000
(22:57 +0100)
committer
Petr Štetiar
<ynezz@true.cz>
Wed, 8 Jul 2020 14:07:05 +0000
(16:07 +0200)
Add missing calls to `free` for variable `filebuffer`.
Add missing calls to `fclose` for variables `fd` and `fd_out`.
Signed-off-by: Andrea Dalla Costa <andrea@dallacosta.me>
tools/firmware-utils/src/hcsmakeimage.c
patch
|
blob
|
history
diff --git
a/tools/firmware-utils/src/hcsmakeimage.c
b/tools/firmware-utils/src/hcsmakeimage.c
index 7baa7b5845e1ab9f67aa8f3b86446dce2a98326c..2888810cc7e4c1c5f3d6c3a31dae103f64405105 100644
(file)
--- a/
tools/firmware-utils/src/hcsmakeimage.c
+++ b/
tools/firmware-utils/src/hcsmakeimage.c
@@
-183,6
+183,7
@@
int main ( int argc, char** argv )
char* filebuffer = malloc ( buf.st_size+10 );
FILE* fd = fopen ( input,"r" );
fread ( filebuffer, 1, buf.st_size,fd );
+ fclose (fd);
if (!output)
{
output = malloc(strlen(input+5));
@@
-194,10
+195,13
@@
int main ( int argc, char** argv )
if (!fd_out)
{
fprintf(stderr, "Failed to open output file: %s\n", output);
+ free(filebuffer);
exit(1);
}
fwrite ( head,1,sizeof ( ldr_header_t ),fd_out );
fwrite ( filebuffer,1,buf.st_size,fd_out );
printf("Firmware image %s is ready\n", output);
+ free(filebuffer);
+ fclose(fd_out);
return 0;
}