In streaming_set_m2m, make sure to close all file pointers and file descriptors before returning. Signed-off-by: Dafna Hirschfeld <dafna3@xxxxxxxxx> --- utils/v4l2-ctl/v4l2-ctl-streaming.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp index 0eda8449..ee84abbe 100644 --- a/utils/v4l2-ctl/v4l2-ctl-streaming.cpp +++ b/utils/v4l2-ctl/v4l2-ctl-streaming.cpp @@ -2141,18 +2141,19 @@ static void streaming_set_m2m(cv4l_fd &fd, cv4l_fd &exp_fd) if (options[OptStreamDmaBuf]) { if (exp_q.reqbufs(&exp_fd, reqbufs_count_cap)) - return; + goto done; exp_fd_p = &exp_fd; } if (options[OptStreamOutDmaBuf]) { if (exp_q.reqbufs(&exp_fd, reqbufs_count_out)) - return; + goto done; if (out.export_bufs(&exp_fd, exp_fd.g_type())) - return; + goto done; } stateful_m2m(fd, in, out, file[CAP], file[OUT], exp_fd_p); +done: if (options[OptStreamDmaBuf] || options[OptStreamOutDmaBuf]) exp_q.close_exported_fds(); -- 2.17.1