From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.4 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3913C43603 for ; Fri, 20 Dec 2019 18:51:29 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id A7D49206DA for ; Fri, 20 Dec 2019 18:51:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="WqjxyhOk" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A7D49206DA Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 561F88E01BE; Fri, 20 Dec 2019 13:51:29 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 538A58E019D; Fri, 20 Dec 2019 13:51:29 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 44FCA8E01BE; Fri, 20 Dec 2019 13:51:29 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0210.hostedemail.com [216.40.44.210]) by kanga.kvack.org (Postfix) with ESMTP id 2CDFD8E019D for ; Fri, 20 Dec 2019 13:51:29 -0500 (EST) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with SMTP id E3F7B1EF1 for ; Fri, 20 Dec 2019 18:51:28 +0000 (UTC) X-FDA: 76286413056.12.oil76_814171ffb8346 X-HE-Tag: oil76_814171ffb8346 X-Filterd-Recvd-Size: 5674 Received: from mail-wr1-f74.google.com (mail-wr1-f74.google.com [209.85.221.74]) by imf46.hostedemail.com (Postfix) with ESMTP for ; Fri, 20 Dec 2019 18:51:28 +0000 (UTC) Received: by mail-wr1-f74.google.com with SMTP id w6so2999030wrm.16 for ; Fri, 20 Dec 2019 10:51:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=lNW3W+WCgNg8zvjaxFmU0blpxdu9ImWDdTneD3TSEYI=; b=WqjxyhOkZsdESYgenSPfoWtJteT0y4sun+XsCUrZYmqTwAeTPVOftl7jmCAd9cgIw1 5zPSrLfWf0J+VIIpWemL0KNLXb3kpJ1hfupjYlFUlmllyWZ0b6qUKPc3xCrXs6UhMexO VrMYCHRk4Q0gBpOtkt71nvK7zpyv/aoIE4EQ37IwNDbfVTo7bkq1m/GTb0t6+SWHHBrx 3XmM5BHNqv2UURv3YxgiSHmnCZU9qwrDXmkdvpBIOXyu+INhVrKbqTc7hi+z8blmNwxX 4VuWvlFvx/298OqNHfNt5rzQHZiHqqfVqFckpfjh/OlzBA9RhdmSlXCNgiamlK3+Cn0P jmfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=lNW3W+WCgNg8zvjaxFmU0blpxdu9ImWDdTneD3TSEYI=; b=ePZiS1MvIKqyQT/igCOlYzADhEuEX/5lo1OZzGmLZiWuQWaZ+BCdXGquKgFknbnW0N 61ccwpJmLDecaqM8qeqyGF2JkE5Ff8IRHLPwtrx0FtQiRvXbmITgGB8ZeUWRjTJDsafB 6aS7ISUKqq6FG0XAe/1PULcZ/OSt0R9ae8GKmfB35OVEW48pvOxIg0lReisjX3hmF5Jg s7Clz8tBxefSkhrFFvOJuRBokrvd4+dddFwb6tFdkSUHrweblryrRHxyrIOcPR9j8qOM dmdV3OrTjN7hw/wJ3ipHdfbaQwfIOvNQM2F9kkODuM1sX314xrQJdVTqCFVxcLYwXFAr TyBQ== X-Gm-Message-State: APjAAAV9bp2iVPw0nn0zwtodjY/ECjjhLfPWeaDfChGnsE60AGdG+Bul KNhFEt9fxk4Q4A2AFNXlrymVGT63zOo= X-Google-Smtp-Source: APXvYqy1sVN/HJ28YaOPkwgTdyAFILQu4bqWfgNhoCJnkMvkaaUYCwkuINt7EMB7XZiUW8/mho+uSf/V3xY= X-Received: by 2002:a5d:6901:: with SMTP id t1mr15689937wru.94.1576867886712; Fri, 20 Dec 2019 10:51:26 -0800 (PST) Date: Fri, 20 Dec 2019 19:49:40 +0100 In-Reply-To: <20191220184955.223741-1-glider@google.com> Message-Id: <20191220184955.223741-28-glider@google.com> Mime-Version: 1.0 References: <20191220184955.223741-1-glider@google.com> X-Mailer: git-send-email 2.24.1.735.g03f4e72817-goog Subject: [PATCH RFC v4 27/42] kmsan: printk: treat the result of vscnprintf() as initialized From: glider@google.com To: Andrew Morton , Greg Kroah-Hartman , Eric Dumazet , Wolfram Sang , Petr Mladek , Vegard Nossum , Dmitry Vyukov , Marco Elver , Andrey Konovalov , linux-mm@kvack.org Cc: glider@google.com, viro@zeniv.linux.org.uk, adilger.kernel@dilger.ca, aryabinin@virtuozzo.com, luto@kernel.org, ard.biesheuvel@linaro.org, arnd@arndb.de, hch@infradead.org, hch@lst.de, darrick.wong@oracle.com, davem@davemloft.net, dmitry.torokhov@gmail.com, ebiggers@google.com, ericvh@gmail.com, harry.wentland@amd.com, herbert@gondor.apana.org.au, iii@linux.ibm.com, mingo@elte.hu, jasowang@redhat.com, axboe@kernel.dk, m.szyprowski@samsung.com, mark.rutland@arm.com, martin.petersen@oracle.com, schwidefsky@de.ibm.com, willy@infradead.org, mst@redhat.com, mhocko@suse.com, monstr@monstr.eu, cai@lca.pw, rdunlap@infradead.org, robin.murphy@arm.com, sergey.senozhatsky@gmail.com, rostedt@goodmis.org, tiwai@suse.com, tytso@mit.edu, tglx@linutronix.de, gor@linux.ibm.com Content-Type: text/plain; charset="UTF-8" X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: In vprintk_store(), vscnprintf() may return an uninitialized text_len value if any of its arguments are uninitialized. In that case KMSAN will report one or more errors in vscnprintf() itself, but it doesn't make much sense to track that value further, as it may trigger more errors in printk. Instead, we explicitly mark it as initialized. Signed-off-by: Alexander Potapenko To: Alexander Potapenko Cc: Andrew Morton Cc: Greg Kroah-Hartman Cc: Eric Dumazet Cc: Wolfram Sang Cc: Petr Mladek Cc: Vegard Nossum Cc: Dmitry Vyukov Cc: Marco Elver Cc: Andrey Konovalov Cc: linux-mm@kvack.org Acked-by: Petr Mladek --- This patch was split from "kmsan: call KMSAN hooks where needed", as requested by Andrey Konovalov. Petr Mladek has previously acked the printk part of that patch, hence the Acked-by above. v4: - split this patch away Change-Id: Ibed60b0bdd25f8ae91acee5800b5328e78e0735a --- kernel/printk/printk.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index 1ef6f75d92f1..cda33cfabafa 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -1915,6 +1915,12 @@ int vprintk_store(int facility, int level, * prefix which might be passed-in as a parameter. */ text_len = vscnprintf(text, sizeof(textbuf), fmt, args); + /* + * If any of vscnprintf() arguments is uninitialized, KMSAN will report + * one or more errors and also probably mark text_len as uninitialized. + * Initialize |text_len| to prevent the errors from spreading further. + */ + text_len = KMSAN_INIT_VALUE(text_len); /* mark and strip a trailing newline */ if (text_len && text[text_len-1] == '\n') { -- 2.24.1.735.g03f4e72817-goog