Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1851834pxk; Tue, 1 Sep 2020 09:14:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxbNrZrmryUG8nEApC92fS/jEcPJOr4qq53bgk0WIDdJMQjG782tEcaleSw85xxSLmbR7S4 X-Received: by 2002:a17:906:fa81:: with SMTP id lt1mr2104906ejb.459.1598976876351; Tue, 01 Sep 2020 09:14:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598976876; cv=none; d=google.com; s=arc-20160816; b=I1PAaqonCG0ExsRu0qBWXrcdJQn0n86+/EQqfzHC0BT5KCZMWtog4F4iPEJllqU66U +HFvaBvFWDIHjbY02VnooMKlkWbJ4BsAs4lLeq5VNumJdzUbNyCWqHEjshwgGzY7MDvW GjfFp+QFCC0g1KPkiX3f3Cf4ZqBV+KSUjiKCR9wptd35TBqFQ1Vp8V1WhG+Z9PfbGRJf NnWOz4K8T7CMCNPs3XV28CKZ4SMvh1QO+lGKSBmts5ZAob878KkXjS3XHUDovkvh2TAn AgpBl2tU6T42cKD1NAACSNMLX3AifTSLCxOZSEUWp5uL8xF3OEe6SZyM5g6WvOaag8cb Ud5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=lqvGVpTu3794a+qrzVt5c3BodIt5EMWNeln2A5XYdIk=; b=Eyle1aWYvFxWpLTC8pdG38HMIiGGMYf8Q/nFRLan2uY5D2MlFQqkqPAzeMyGHNw9l0 YV7ikC4NswW/xnrYvttuiY65vvGztYnIpGYuE2Pjnf0OLQpiDkuZRjcoJREo4MHRILJv 1Go7G4hsl/5tl2zV1O5bOYoAQjJtUqwUFdnXHW1hehST9wtgzx4DgDTky8FMSSSf/wCd eLg/eAZMwTJrt/o82Xppie/kmeViLp1P9OvNUgZcgSCMKGwodwK1XQH3eQ3cn/WExMn7 d+JteXDuaQtSomCQabHypsDHnJI5ZzRAwKe7/CUwRWv5Qd4alw335NuJeRz7eVHQY6Rz jTJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OORzpvVx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id k17si824857ejc.412.2020.09.01.09.14.12; Tue, 01 Sep 2020 09:14:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=OORzpvVx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731359AbgIAQLg (ORCPT + 99 others); Tue, 1 Sep 2020 12:11:36 -0400 Received: from mail.kernel.org ([198.145.29.99]:45716 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728774AbgIAPhe (ORCPT ); Tue, 1 Sep 2020 11:37:34 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id D25A7205F4; Tue, 1 Sep 2020 15:37:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1598974653; bh=duA5OZY/skQ/JAo3h/E2BEJCdypBbG0QAcMV7CMJLRU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OORzpvVxSOTREKmk+7nwe07PZ/nuX+Wq6oPs72rXGd0F5Qxj4H3ciZvPtnIpnDKBp j2um7ZBva1KDpvTX1JbwQm7vx6ZWR5DHb32hVLxTSMTjjIB36x3ccuGR0vNw1f9Fw9 F0ucjpFh/5McHmdN8TMs42t+aN2CkK0LlCSespWw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Peng Fan , Thomas Bogendoerfer , Sasha Levin Subject: [PATCH 5.8 043/255] mips/vdso: Fix resource leaks in genvdso.c Date: Tue, 1 Sep 2020 17:08:19 +0200 Message-Id: <20200901151002.813862582@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200901151000.800754757@linuxfoundation.org> References: <20200901151000.800754757@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Peng Fan [ Upstream commit a859647b4e6bfeb192284d27d24b6a0c914cae1d ] Close "fd" before the return of map_vdso() and close "out_file" in main(). Signed-off-by: Peng Fan Signed-off-by: Thomas Bogendoerfer Signed-off-by: Sasha Levin --- arch/mips/vdso/genvdso.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/mips/vdso/genvdso.c b/arch/mips/vdso/genvdso.c index be57b832bbe0a..ccba50ec8a40e 100644 --- a/arch/mips/vdso/genvdso.c +++ b/arch/mips/vdso/genvdso.c @@ -122,6 +122,7 @@ static void *map_vdso(const char *path, size_t *_size) if (fstat(fd, &stat) != 0) { fprintf(stderr, "%s: Failed to stat '%s': %s\n", program_name, path, strerror(errno)); + close(fd); return NULL; } @@ -130,6 +131,7 @@ static void *map_vdso(const char *path, size_t *_size) if (addr == MAP_FAILED) { fprintf(stderr, "%s: Failed to map '%s': %s\n", program_name, path, strerror(errno)); + close(fd); return NULL; } @@ -139,6 +141,7 @@ static void *map_vdso(const char *path, size_t *_size) if (memcmp(ehdr->e_ident, ELFMAG, SELFMAG) != 0) { fprintf(stderr, "%s: '%s' is not an ELF file\n", program_name, path); + close(fd); return NULL; } @@ -150,6 +153,7 @@ static void *map_vdso(const char *path, size_t *_size) default: fprintf(stderr, "%s: '%s' has invalid ELF class\n", program_name, path); + close(fd); return NULL; } @@ -161,6 +165,7 @@ static void *map_vdso(const char *path, size_t *_size) default: fprintf(stderr, "%s: '%s' has invalid ELF data order\n", program_name, path); + close(fd); return NULL; } @@ -168,15 +173,18 @@ static void *map_vdso(const char *path, size_t *_size) fprintf(stderr, "%s: '%s' has invalid ELF machine (expected EM_MIPS)\n", program_name, path); + close(fd); return NULL; } else if (swap_uint16(ehdr->e_type) != ET_DYN) { fprintf(stderr, "%s: '%s' has invalid ELF type (expected ET_DYN)\n", program_name, path); + close(fd); return NULL; } *_size = stat.st_size; + close(fd); return addr; } @@ -293,10 +301,12 @@ int main(int argc, char **argv) /* Calculate and write symbol offsets to */ if (!get_symbols(dbg_vdso_path, dbg_vdso)) { unlink(out_path); + fclose(out_file); return EXIT_FAILURE; } fprintf(out_file, "};\n"); + fclose(out_file); return EXIT_SUCCESS; } -- 2.25.1