From f388ad897cf1aa9dc77133e6853c62687aafe562 Mon Sep 17 00:00:00 2001 From: Sangjin Lee Date: Wed, 27 Sep 2017 13:49:26 +0900 Subject: [PATCH] fix coverity error Change-Id: I4f9452479943944b276207e4282e8e5fa4647abd --- src/lib/drm/drm-buffer.c | 6 ++++-- src/lib/drm/drm-connector.c | 2 +- src/lib/drm/drm-output.c | 11 +++++++++-- src/lib/tdm/tdm-output.c | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/lib/drm/drm-buffer.c b/src/lib/drm/drm-buffer.c index b56faf4..cb999af 100644 --- a/src/lib/drm/drm-buffer.c +++ b/src/lib/drm/drm-buffer.c @@ -90,7 +90,8 @@ error: memset(&destroy_arg, 0x00, sizeof(destroy_arg)); destroy_arg.handle = buffer->handle; - drmIoctl(drm->fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_arg); + if (drmIoctl(drm->fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_arg)) + PEPPER_ERROR("drmIoctl() failed.\n"); } if (buffer->image) @@ -213,7 +214,8 @@ drm_buffer_destroy(drm_buffer_t *buffer) memset(&destroy_arg, 0x00, sizeof(destroy_arg)); destroy_arg.handle = buffer->handle; - drmIoctl(buffer->drm->fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_arg); + if (drmIoctl(buffer->drm->fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy_arg)) + PEPPER_ERROR("drmIoctl failed.\n"); } else if (buffer->type == DRM_BUFFER_TYPE_GBM) { gbm_bo_set_user_data(buffer->bo, NULL, NULL); gbm_surface_release_buffer(buffer->surface, buffer->bo); diff --git a/src/lib/drm/drm-connector.c b/src/lib/drm/drm-connector.c index 553c34d..0b7591f 100644 --- a/src/lib/drm/drm-connector.c +++ b/src/lib/drm/drm-connector.c @@ -78,7 +78,7 @@ drm_init_connectors(pepper_drm_t *drm) for (i = 0; i < drm->resources->count_connectors; i++) { drm_connector_t *conn = calloc(1, sizeof(drm_connector_t)); - PEPPER_CHECK(conn, continue, "calloc() failed.\n"); + PEPPER_CHECK(conn, return, "calloc() failed.\n"); conn->drm = drm; conn->id = drm->resources->connectors[i]; diff --git a/src/lib/drm/drm-output.c b/src/lib/drm/drm-output.c index 9368966..dfcf3d5 100644 --- a/src/lib/drm/drm-output.c +++ b/src/lib/drm/drm-output.c @@ -847,6 +847,12 @@ drm_output_create(drm_connector_t *conn) output->drm = drm; output->conn = conn; output->crtc_index = find_crtc_for_connector(conn); + if (output->crtc_index == -1) { + PEPPER_ERROR("find_crtc_for_connector() failed.\n"); + free(output); + return NULL; + } + output->crtc_id = drm->resources->crtcs[output->crtc_index]; output->saved_crtc = drmModeGetCrtc(drm->fd, output->crtc_id); output->mode = &conn->connector->modes[0]; @@ -953,11 +959,12 @@ drm_output_destroy(void *o) fini_gl_renderer(output); if (output->saved_crtc) { - drmModeSetCrtc(output->conn->drm->fd, + if (drmModeSetCrtc(output->conn->drm->fd, output->saved_crtc->crtc_id, output->saved_crtc->buffer_id, output->saved_crtc->x, output->saved_crtc->y, - &output->conn->connector->connector_id, 1, &output->saved_crtc->mode); + &output->conn->connector->connector_id, 1, &output->saved_crtc->mode)) + PEPPER_ERROR("drmModeSetCrtc was failed.\n"); drmModeFreeCrtc(output->saved_crtc); } diff --git a/src/lib/tdm/tdm-output.c b/src/lib/tdm/tdm-output.c index 4af43e6..737a5fb 100644 --- a/src/lib/tdm/tdm-output.c +++ b/src/lib/tdm/tdm-output.c @@ -558,7 +558,7 @@ pepper_tdm_output_init(pepper_tdm_t *tdm) while (num_output--) { output = (pepper_tdm_output_t *)calloc(1, sizeof(pepper_tdm_output_t)); - PEPPER_CHECK(output, continue, "Failed to allocate memory for pepper_tdm_output_t\n"); + PEPPER_CHECK(output, goto error, "Failed to allocate memory for pepper_tdm_output_t\n"); output->tdm = tdm; output->output = (tdm_output *)tdm_display_get_output(tdm->disp, num_output, &err); -- 2.34.1