From patchwork Wed Dec 20 20:27:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukas Bulwahn X-Patchwork-Id: 10126545 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id B64ED60245 for ; Wed, 20 Dec 2017 20:27:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A942D29473 for ; Wed, 20 Dec 2017 20:27:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9E2CA294A4; Wed, 20 Dec 2017 20:27:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD6ED29473 for ; Wed, 20 Dec 2017 20:27:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755981AbdLTU1k (ORCPT ); Wed, 20 Dec 2017 15:27:40 -0500 Received: from mail-wr0-f195.google.com ([209.85.128.195]:33801 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756078AbdLTU10 (ORCPT ); Wed, 20 Dec 2017 15:27:26 -0500 Received: by mail-wr0-f195.google.com with SMTP id y21so23372092wrc.1; Wed, 20 Dec 2017 12:27:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=Ut5uno+k2HCr6UI9rTw9Sa9QX3cwixnQxKl1cszkLIc=; b=dfP2t3gK3WnKmcDppbwIRCTdED5B3zLEH7Lw4O/5xX0yxq9tmbfVcBeuMtPx/Paob8 ATgge7lobZMTNRlwGLAlM28fq6eB6kEgfvXYJh4TSUwmmEq5nJTl6+zGlZlgKxgLmgBN +RJP/BayRPiMGtzOiocFxPmhZltNhnU1WjuHvT23fXEhtL8M1a5jU9KobW5kUTgkvMNA CPUGQ/pqehOfQMFqO8zJsDLx8iL0RLbcDbjcWIJMzg4yIADfdHHM1s8tzo/YiEmuwE/e Msga6SWIOe+De+MnpPTgvQ3ezfQGB9MEKtF1vaJr2hGxtuMK4RQ9evW7nmamVkcKagIA RvVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Ut5uno+k2HCr6UI9rTw9Sa9QX3cwixnQxKl1cszkLIc=; b=R9Z249kneYSL4Z4NHgtdAHUtpU9VrKb0PcVZlsifbuid2u9PPc6LNvseBELQ/usWus yeUJmS8l+7e+HfOKPQf8Ir4+5ZBzjvRzwvOJElzisvw03WVjv0WGPHD41cr6z7mEgdAT MYI7F1Kf0dDfhirohOeDDmAzv9TCivFo2XfRObkz99AlpJHfRd4LKFvUMihLR7k+UEOc vI0XiuuMsmE4M5ekcI3WkEzgS4+d7V2O3hBxisIyAKiTDG0Vp3dhK0H+RGrk0beMkfTs czilbfmWRqeDN88XNDVlkxabIp4vXVUp7NqWYdP8LxLaPqaHmlydxuC/sL+pkNoG+Qsp tZPQ== X-Gm-Message-State: AKGB3mLFVx4RZwVBNkbwx4GPw/FiUqzZQZMCwzfIWYS5+k8v+QNMGANh hADZA82i0+OTqD/9iTomA6neX0g4 X-Google-Smtp-Source: ACJfBou1Gm5j11zymqaL7mLcix9jgwhcbgK/yGYtES9Yxx7XMNqowjk8mNfkmeYgkPiwtX1xhNKkpA== X-Received: by 10.223.182.73 with SMTP id i9mr9059284wre.113.1513801644627; Wed, 20 Dec 2017 12:27:24 -0800 (PST) Received: from hsp.bmw-carit.intra ([145.253.130.2]) by smtp.gmail.com with ESMTPSA id j125sm4186768wmd.24.2017.12.20.12.27.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 20 Dec 2017 12:27:24 -0800 (PST) From: Lukas Bulwahn To: linux-kbuild@vger.kernel.org Cc: lukas.bulwahn@gmail.com, Nicholas Mc Guire , sil2review@lists.osadl.org, Masahiro Yamada , Michal Marek , linux-kernel@vger.kernel.org Subject: [PATCH] fixdep: exit with error code in error branches of do_config_file() Date: Wed, 20 Dec 2017 21:27:02 +0100 Message-Id: <1513801623-19069-1-git-send-email-lukas.bulwahn@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP do_config_file() should exit with an error code, and not return if it fails as then the error in do_config_file() would go unnoticed in the current code and allow the build to continue. The exit with error code will make the build fail in those very exceptional cases. If this occurs, this actually indicates a deeper problem in the execution of the kernel build process. Now, that the function exists, we do not explicitly free memory and close the file handlers in do_config_file(), as this is covered by exit(). This issue in the fixdep script was present already before its initial import into the git repository in 2005 (Linux-2.6.12-rc2). Hence, the Fixes tag would be imprecise and we do not include a Fixes tag to this commit. This issue was identified during the review of a previous patch that intended to address a memory leak detected by a static analysis tool. Link: https://lkml.org/lkml/2017/12/14/736 Suggested-by: Nicholas Mc Guire Suggested-by: Masahiro Yamada Signed-off-by: Lukas Bulwahn Reviewed-by: Nicholas Mc Guire --- compile tested on top of next-20171220 with clang and gcc scripts/basic/fixdep.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c index bbf62cb..4274610 100644 --- a/scripts/basic/fixdep.c +++ b/scripts/basic/fixdep.c @@ -284,19 +284,18 @@ static void do_config_file(const char *filename) exit(2); } if (st.st_size == 0) { - close(fd); - return; + fprintf(stderr, "fixdep: error empty file config file: "); + perror(filename); + exit(2); } map = malloc(st.st_size + 1); if (!map) { perror("fixdep: malloc"); - close(fd); - return; + exit(2); } if (read(fd, map, st.st_size) != st.st_size) { perror("fixdep: read"); - close(fd); - return; + exit(2); } map[st.st_size] = '\0'; close(fd);