wcap: Check for mmap and malloc return value in wcap decode module

Checking for return value in main.c for wcap_decoder_create function
and mmap, malloc return value in wcap_decoder_create function to avoid
crashes

Signed-off-by: vivek <vivek.ellur@samsung.com>
dev
vivek 11 years ago committed by Kristian Høgsberg
parent 4779241516
commit 6f0907b6d8
  1. 4
      wcap/main.c
  2. 9
      wcap/wcap-decode.c

@ -251,6 +251,10 @@ int main(int argc, char *argv[])
} }
decoder = wcap_decoder_create(argv[1]); decoder = wcap_decoder_create(argv[1]);
if (decoder == NULL) {
fprintf(stderr, "Creating wcap decoder failed\n");
exit(EXIT_FAILURE);
}
if (yuv4mpeg2 && isatty(1)) { if (yuv4mpeg2 && isatty(1)) {
fprintf(stderr, "Not dumping yuv4mpeg2 data to terminal. Pipe output to a file or a process.\n"); fprintf(stderr, "Not dumping yuv4mpeg2 data to terminal. Pipe output to a file or a process.\n");

@ -126,6 +126,11 @@ wcap_decoder_create(const char *filename)
decoder->size = buf.st_size; decoder->size = buf.st_size;
decoder->map = mmap(NULL, decoder->size, decoder->map = mmap(NULL, decoder->size,
PROT_READ, MAP_PRIVATE, decoder->fd, 0); PROT_READ, MAP_PRIVATE, decoder->fd, 0);
if (decoder->map == MAP_FAILED) {
fprintf(stderr, "mmap failed\n");
free(decoder);
return NULL;
}
header = decoder->map; header = decoder->map;
decoder->format = header->format; decoder->format = header->format;
@ -137,6 +142,10 @@ wcap_decoder_create(const char *filename)
frame_size = header->width * header->height * 4; frame_size = header->width * header->height * 4;
decoder->frame = malloc(frame_size); decoder->frame = malloc(frame_size);
if (decoder->frame == NULL) {
free(decoder);
return NULL;
}
memset(decoder->frame, 0, frame_size); memset(decoder->frame, 0, frame_size);
return decoder; return decoder;

Loading…
Cancel
Save