screenshooter: check for NULL malloc and fix memleaks
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
This commit is contained in:
committed by
Kristian Høgsberg
parent
f05645b30e
commit
13708a4d67
+12
-1
@@ -190,7 +190,7 @@ screenshooter_shoot(struct wl_client *client,
|
|||||||
}
|
}
|
||||||
if (!wl_shm_buffer_get(buffer->resource))
|
if (!wl_shm_buffer_get(buffer->resource))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
buffer->shm_buffer = wl_shm_buffer_get(buffer->resource);
|
buffer->shm_buffer = wl_shm_buffer_get(buffer->resource);
|
||||||
buffer->width = wl_shm_buffer_get_width(buffer->shm_buffer);
|
buffer->width = wl_shm_buffer_get_width(buffer->shm_buffer);
|
||||||
buffer->height = wl_shm_buffer_get_height(buffer->shm_buffer);
|
buffer->height = wl_shm_buffer_get_height(buffer->shm_buffer);
|
||||||
@@ -428,6 +428,11 @@ weston_recorder_create(struct weston_output *output, const char *filename)
|
|||||||
|
|
||||||
recorder = malloc(sizeof *recorder);
|
recorder = malloc(sizeof *recorder);
|
||||||
|
|
||||||
|
if (recorder == NULL) {
|
||||||
|
weston_log("%s: out of memory\n", __func__);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
stride = output->current_mode->width;
|
stride = output->current_mode->width;
|
||||||
size = stride * 4 * output->current_mode->height;
|
size = stride * 4 * output->current_mode->height;
|
||||||
recorder->frame = zalloc(size);
|
recorder->frame = zalloc(size);
|
||||||
@@ -454,6 +459,9 @@ weston_recorder_create(struct weston_output *output, const char *filename)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
weston_log("unknown recorder format\n");
|
weston_log("unknown recorder format\n");
|
||||||
|
free(recorder->rect);
|
||||||
|
free(recorder->tmpbuf);
|
||||||
|
free(recorder->frame);
|
||||||
free(recorder);
|
free(recorder);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -463,6 +471,9 @@ weston_recorder_create(struct weston_output *output, const char *filename)
|
|||||||
|
|
||||||
if (recorder->fd < 0) {
|
if (recorder->fd < 0) {
|
||||||
weston_log("problem opening output file %s: %m\n", filename);
|
weston_log("problem opening output file %s: %m\n", filename);
|
||||||
|
free(recorder->rect);
|
||||||
|
free(recorder->tmpbuf);
|
||||||
|
free(recorder->frame);
|
||||||
free(recorder);
|
free(recorder);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user