}
if (!wl_shm_buffer_get(buffer->resource))
return;
-
+
buffer->shm_buffer = wl_shm_buffer_get(buffer->resource);
buffer->width = wl_shm_buffer_get_width(buffer->shm_buffer);
buffer->height = wl_shm_buffer_get_height(buffer->shm_buffer);
recorder = malloc(sizeof *recorder);
+ if (recorder == NULL) {
+ weston_log("%s: out of memory\n", __func__);
+ return;
+ }
+
stride = output->current_mode->width;
size = stride * 4 * output->current_mode->height;
recorder->frame = zalloc(size);
break;
default:
weston_log("unknown recorder format\n");
+ free(recorder->rect);
+ free(recorder->tmpbuf);
+ free(recorder->frame);
free(recorder);
return;
}
if (recorder->fd < 0) {
weston_log("problem opening output file %s: %m\n", filename);
+ free(recorder->rect);
+ free(recorder->tmpbuf);
+ free(recorder->frame);
free(recorder);
return;
}