[PATCH] wcap: clean up resources on mmap or frame alloc failure.
U. Artie Eoff
ullysses.a.eoff at intel.com
Wed May 14 14:38:10 PDT 2014
Close the decoder->fd resource if mmap fails. Unmap the
decoder->map and close the decoder->fd if the decoder->frame
memory allocation fails.
Although short-lived in the context of where wcap_decoder_create
is currently used (i.e. in main), not closing the fd before
returning NULL in these cases introduces a resource leak.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff at intel.com>
---
wcap/wcap-decode.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/wcap/wcap-decode.c b/wcap/wcap-decode.c
index 76ecc2f..8909982 100644
--- a/wcap/wcap-decode.c
+++ b/wcap/wcap-decode.c
@@ -128,6 +128,7 @@ wcap_decoder_create(const char *filename)
PROT_READ, MAP_PRIVATE, decoder->fd, 0);
if (decoder->map == MAP_FAILED) {
fprintf(stderr, "mmap failed\n");
+ close(decoder->fd);
free(decoder);
return NULL;
}
@@ -143,6 +144,8 @@ wcap_decoder_create(const char *filename)
frame_size = header->width * header->height * 4;
decoder->frame = malloc(frame_size);
if (decoder->frame == NULL) {
+ munmap(decoder->map, decoder->size);
+ close(decoder->fd);
free(decoder);
return NULL;
}
--
1.8.5.3
More information about the wayland-devel
mailing list