From patchwork Wed Apr 15 15:04:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Umang Jain X-Patchwork-Id: 3468 Return-Path: Received: from o1.f.az.sendgrid.net (o1.f.az.sendgrid.net [208.117.55.132]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id D7A6D62E35 for ; Wed, 15 Apr 2020 17:04:15 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=uajain.com header.i=@uajain.com header.b="FMA4ts4p"; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uajain.com; h=from:subject:in-reply-to:references:mime-version:to:cc: content-transfer-encoding:content-type; s=s1; bh=igqKtmU9R/gVFk9I7l20auMWyLmlsLFGtzLi0TNLEnk=; b=FMA4ts4pNWyS3gannIz5Y9tZUHBrEyBzWGU55qrbCsDRGQyyYftWYmdsmnYqozWs39CF EtnYnc4fLiZijQOg/lqj8cBVRIa0IAScyXigTW7ZhFPALVencKsmRZlbTobVQNMJdtuvsg Ffmv8cWSLUO2t0MthW0lUI4HDUsguPjbY= Received: by filterdrecv-p3iad2-8ddf98858-4rnwn with SMTP id filterdrecv-p3iad2-8ddf98858-4rnwn-19-5E97226E-11 2020-04-15 15:04:14.332166651 +0000 UTC m=+1778209.186877990 Received: from mail.uajain.com (unknown) by ismtpd0003p1maa1.sendgrid.net (SG) with ESMTP id qiH5KXC1QbibuDzsa_54lQ Wed, 15 Apr 2020 15:04:13.927 +0000 (UTC) From: Umang Jain Date: Wed, 15 Apr 2020 15:04:14 +0000 (UTC) Message-Id: <20200415150409.27938-2-email@uajain.com> In-Reply-To: <20200415150409.27938-1-email@uajain.com> References: <20200415150409.27938-1-email@uajain.com> Mime-Version: 1.0 X-SG-EID: 1Q40EQ7YGir8a9gjSIAdTjhngY657NMk9ckeo4dbHZDiOpywc/L3L9rFqlwE4KPc4om/Oij3lMEQBxKPi/30O4MUN2cHtcUTKTK91M24p1f7vvUOd0VY77AWX2BK8X3j0dlslJ53foXH1NojjJYnYUus+UEc7JW28mLxJZC4V6OeaKeoUZEpPRLF5qSJdQonsu+/7zl5YTs8H7F/+fQ32eaGryCU7nvfjJ55BT+VVfdT6mHUywRByTbtlUcfjms3tR1j9JzDbUmkHxv/gYLCkA== To: libcamera-devel@lists.libcamera.org Subject: [libcamera-devel] [PATCH v2 1/2] test: ipc: unixsocket: Close open fds on error paths X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 15 Apr 2020 15:04:16 -0000 Pointed out by Coverity DefectId=279052 Signed-off-by: Umang Jain --- test/ipc/unixsocket.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp index 5348f35..7bc6a89 100644 --- a/test/ipc/unixsocket.cpp +++ b/test/ipc/unixsocket.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include "ipc_unixsocket.h" @@ -467,18 +468,22 @@ private: if (fd < 0) return fd; + FileDescriptor file_desc = FileDescriptor(fd); + close(fd); + if (file_desc.fd() < 0) + return file_desc.fd(); + int size = 0; for (unsigned int i = 0; i < num; i++) { - int clone = dup(fd); - if (clone < 0) - return clone; + FileDescriptor *clone = new FileDescriptor(file_desc.fd()); + int clone_int = clone->fd(); + if (clone_int < 0) + return clone_int; - size += calculateLength(clone); - message->fds.push_back(clone); + size += calculateLength(clone_int); + message->fds.push_back(clone_int); } - close(fd); - return size; }