Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2507543pxj; Mon, 10 May 2021 04:48:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwscmH3hNUdQedXjZ1y1paWMiR4njNu6Nwqcv5XfrvnNQnbdLJpKuLVgkYeIz1vsbO1ZY8n X-Received: by 2002:a17:906:bb0e:: with SMTP id jz14mr24948548ejb.285.1620647301142; Mon, 10 May 2021 04:48:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620647301; cv=none; d=google.com; s=arc-20160816; b=bCOPyQWq5/DF5weztK3XFUqCU/akzbo5QyfWdzCT7a4sQ3BUpPp4RcAJmylTzjzKpW IfRpsOwRs4Feacq9Cok9DgTaSuJkg93hRU6y8ihVHbROk5+uKdZ6InUh6DJ6y8pmnD9n m2SaU0MG+bwkkp//JQyv+ZujnDQOnmayyl5lAVy7iy42fcE0SavVKmAQcSZUZ7Dfi+v/ f5mEakEZt1DIslPy/jtxZoCTlJ/jP47V6eZzAljlO+hhH+klUSHsyJel6pid64yNo12i c/TxLAebBACYxGRgHhDDHlm+Q9GMRNvQf0IZGBiPaPP2B+tb0M8eVpbZtQxsTKYgG8K5 FM3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Fjk6Y7F930uujALfvehucZUl9EttDxLxaI4a+Xgwv3o=; b=ygGovb/70BXCb/M7xuET9Dvz7nfUEwvEu9QRRnvC+NKc3fxI2AFZOqszNNzftXnXit kAm3BEaaUwW/4pvIpEMKdWfFUn7uEmBijzLTavZOYrcZd3/vGF0vMQ3o1RK4gY0aZsof qmYnfEoJ6VRn9AUMTLsvqkiL9t3WCu9JAr6Rb2yL2+2MSozikwkEBt7hYcxWWdnuoDy8 VL8a/xEUnQpVhHkV4RQH+t42SpXS0IkpJiCq/Tt87tttTRuzyJFDYbJwJR5TBI9GNKby fuLy/sIQdaOAZeSXhUSAmWMZOFG+BNMguQfE4KFLd4HZEMzt8P54AiUfoJtOIX/sid9n JDGw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=O9PEov4y; 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=pass (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 v13si13293643ejb.671.2021.05.10.04.47.43; Mon, 10 May 2021 04:48:21 -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=@linuxfoundation.org header.s=korg header.b=O9PEov4y; 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=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237282AbhEJLj5 (ORCPT + 99 others); Mon, 10 May 2021 07:39:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:54598 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234973AbhEJK5U (ORCPT ); Mon, 10 May 2021 06:57:20 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 203BD61C3E; Mon, 10 May 2021 10:50:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620643846; bh=/xf+7x4AEiy/zFNMH/8OOITRPwL2zDSYp2kW7m6GlWg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=O9PEov4yA7pZrpijjUSRxi07fR1bkNEWDKslB5TaPLcIVvNOxE1Z6m3ncU5OJj2RL YYwueXcTj3LGV1SBdh8iaEaV/Qf8Uol/0XyPEFedIf/PnKvD4ZW7wcr6Ws6x+oTbhk EZUQMqth0sy7kUVpzg6UCSpIYFWzRxW4c2XmYcAg= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, David Binderman , Babu Moger , Fenghua Yu , Shuah Khan , Sasha Levin Subject: [PATCH 5.11 184/342] selftests/resctrl: Enable gcc checks to detect buffer overflows Date: Mon, 10 May 2021 12:19:34 +0200 Message-Id: <20210510102016.170457526@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210510102010.096403571@linuxfoundation.org> References: <20210510102010.096403571@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Fenghua Yu [ Upstream commit a9d26a302dea29eb84f491b1340a57e56c631a71 ] David reported a buffer overflow error in the check_results() function of the cmt unit test and he suggested enabling _FORTIFY_SOURCE gcc compiler option to automatically detect any such errors. Feature Test Macros man page describes_FORTIFY_SOURCE as below "Defining this macro causes some lightweight checks to be performed to detect some buffer overflow errors when employing various string and memory manipulation functions (for example, memcpy, memset, stpcpy, strcpy, strncpy, strcat, strncat, sprintf, snprintf, vsprintf, vsnprintf, gets, and wide character variants thereof). For some functions, argument consistency is checked; for example, a check is made that open has been supplied with a mode argument when the specified flags include O_CREAT. Not all problems are detected, just some common cases. If _FORTIFY_SOURCE is set to 1, with compiler optimization level 1 (gcc -O1) and above, checks that shouldn't change the behavior of conforming programs are performed. With _FORTIFY_SOURCE set to 2, some more checking is added, but some conforming programs might fail. Some of the checks can be performed at compile time (via macros logic implemented in header files), and result in compiler warnings; other checks take place at run time, and result in a run-time error if the check fails. Use of this macro requires compiler support, available with gcc since version 4.0." Fix the buffer overflow error in the check_results() function of the cmt unit test and enable _FORTIFY_SOURCE gcc check to catch any future buffer overflow errors. Reported-by: David Binderman Suggested-by: David Binderman Tested-by: Babu Moger Signed-off-by: Fenghua Yu Signed-off-by: Shuah Khan Signed-off-by: Sasha Levin --- tools/testing/selftests/resctrl/Makefile | 2 +- tools/testing/selftests/resctrl/cqm_test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/resctrl/Makefile b/tools/testing/selftests/resctrl/Makefile index d585cc1948cc..6bcee2ec91a9 100644 --- a/tools/testing/selftests/resctrl/Makefile +++ b/tools/testing/selftests/resctrl/Makefile @@ -1,5 +1,5 @@ CC = $(CROSS_COMPILE)gcc -CFLAGS = -g -Wall +CFLAGS = -g -Wall -O2 -D_FORTIFY_SOURCE=2 SRCS=$(wildcard *.c) OBJS=$(SRCS:.c=.o) diff --git a/tools/testing/selftests/resctrl/cqm_test.c b/tools/testing/selftests/resctrl/cqm_test.c index c8756152bd61..5e7308ac63be 100644 --- a/tools/testing/selftests/resctrl/cqm_test.c +++ b/tools/testing/selftests/resctrl/cqm_test.c @@ -86,7 +86,7 @@ static int check_results(struct resctrl_val_param *param, int no_of_bits) return errno; } - while (fgets(temp, 1024, fp)) { + while (fgets(temp, sizeof(temp), fp)) { char *token = strtok(temp, ":\t"); int fields = 0; -- 2.30.2