avoid the double free 45/257045/3
authorSooChan Lim <sc1.lim@samsung.com>
Mon, 19 Apr 2021 01:20:39 +0000 (10:20 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Mon, 19 Apr 2021 01:32:35 +0000 (01:32 +0000)
The calling free function is done at caller of
_vc4_output_make_atomic_request.

Change-Id: I86369daa2a512945bbe76bc11e690263bbde0276

src/libhal-backend-tdm-vc4/tdm_vc4_display.c

index 7539937..fc184e4 100644 (file)
@@ -1497,7 +1497,6 @@ _vc4_output_make_atomic_request(tdm_vc4_output *output_data, drmModeAtomicReqPtr
                current_mode = _tdm_vc4_display_get_mode(output_data);
                if (!current_mode) {
                        TDM_BACKEND_ERR("couldn't find proper mode");
-                       drmModeAtomicFree(request);
                        return HAL_TDM_ERROR_BAD_REQUEST;
                }
 
@@ -1514,7 +1513,6 @@ _vc4_output_make_atomic_request(tdm_vc4_output *output_data, drmModeAtomicReqPtr
                                        output_data->atomic_props_ids.crtc_id, output_data->crtc_id);
                if (ret < 0) {
                        TDM_BACKEND_ERR("fail to set crtc error:%d", errno);
-                       drmModeAtomicFree(request);
                        return ret;
                }
 
@@ -1522,7 +1520,6 @@ _vc4_output_make_atomic_request(tdm_vc4_output *output_data, drmModeAtomicReqPtr
                                        output_data->atomic_props_ids.crtc_mode_id, output_data->current_mode_blob_id);
                if (ret < 0) {
                        TDM_BACKEND_ERR("fail to set mode error:%d", errno);
-                       drmModeAtomicFree(request);
                        return ret;
                }
 
@@ -1530,7 +1527,6 @@ _vc4_output_make_atomic_request(tdm_vc4_output *output_data, drmModeAtomicReqPtr
                                        output_data->atomic_props_ids.crtc_active, 1);
                if (ret < 0) {
                        TDM_BACKEND_ERR("fail to set active error:%d", errno);
-                       drmModeAtomicFree(request);
                        return ret;
                }
 
@@ -1546,7 +1542,6 @@ _vc4_output_make_atomic_request(tdm_vc4_output *output_data, drmModeAtomicReqPtr
                                output_data->atomic_props_ids.out_fence_ptr, (uintptr_t)out_fence_fd);
        if (ret < 0) {
                TDM_BACKEND_ERR("fail to out fence ptr error:%d", errno);
-               drmModeAtomicFree(request);
                return ret;
        }