From patchwork Tue Jun 12 06:04:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 928113 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="az5u7fie"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 414fdL5NHKz9rxs for ; Tue, 12 Jun 2018 16:10:46 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 6E3D5C21CB1; Tue, 12 Jun 2018 06:07:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 0B5C0C21DFB; Tue, 12 Jun 2018 06:05:50 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 13181C21E1D; Tue, 12 Jun 2018 06:05:37 +0000 (UTC) Received: from mail-it0-f47.google.com (mail-it0-f47.google.com [209.85.214.47]) by lists.denx.de (Postfix) with ESMTPS id 1CE7DC21DE8 for ; Tue, 12 Jun 2018 06:05:33 +0000 (UTC) Received: by mail-it0-f47.google.com with SMTP id a195-v6so13243410itd.3 for ; Mon, 11 Jun 2018 23:05:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=XHYqJ3DNA1g+15d5EB8+cPBsxlL/pmEDawpS7GQIPn8=; b=az5u7fiemQ1lIkmHjm2m/1hsaave5Asj5yoFLOULIA144gR/JaXoMfdmii1le57Wio wx9LlZs79KfjBM3dukKQYhlIkLzQz500xuyuYzIK5IJiHwU5BYthcMUBKA2OdN/fZ2dF 8lXgpERDdFe1Aaovd//DLXV4QGDMYRF8kq+3K+XePv0bboUjJj6LGCZJrr2O9ARF/tfv FVbqPMrwRNKRFZeThoTXnO8b+pr+4jxNmpcapdeSS7JiM/dKx/hj9i8sNWOUcmo86vLz gnSqyGoZbIl7ayYl1D2jbfS03PtB9C2vzazYRTSKsJ/Xc1V40zaNgavIRtgr6+af42z3 RTfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=XHYqJ3DNA1g+15d5EB8+cPBsxlL/pmEDawpS7GQIPn8=; b=t+6+IACUzW6yrPClzSwA14TshJ53qcir54nRPmE20O4hX093jAbZ9TcS1HKJNB5mpN BKVIFVB0a8gOTgEu6j4EFQ4nIaJYzMhQsoFaGUkSOsrrdmKCRcrhU/b9D0g0TxGutagD 3zBooE1PGWYQr4T3BWniu7EiSYRGO/IeB6nO87y2ys87+5JXyEqjP29f7Ta7lOM41FrV +QW625qaOZNuUysFXwdYyg4SjYqT6Aeb2FTlSIX3P1VvL6IXPtJOOOFyqs2di/w6DDq4 xXT8DsObbskpmHa6dkGCkMhamHKDtyiTSrjJtNFlxKB1pPw7UT1LsNYjvm2nkUMxoElF 81Kw== X-Gm-Message-State: APt69E06m7Dg4xo8HfBZmA4pnomdUjQMgCgGuisNSbnxZ4Ipe4777k5h fd0sLDMl1LoVu4NtfJ6tTLabfw== X-Google-Smtp-Source: ADUXVKLHSja7RXU144aa6I+7haD9EROsZvtDdvFZFLXe9Ug9ZGJa8kRBF/6I26a/t0aAmJggpfnlQQ== X-Received: by 2002:a24:d80a:: with SMTP id b10-v6mr1797435itg.141.1528783531315; Mon, 11 Jun 2018 23:05:31 -0700 (PDT) Received: from kiwi.bld.corp.google.com ([2620:15c:183:0:8223:87c:a681:66aa]) by smtp.gmail.com with ESMTPSA id b79-v6sm166430itd.15.2018.06.11.23.05.29 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 11 Jun 2018 23:05:29 -0700 (PDT) Received: by kiwi.bld.corp.google.com (Postfix, from userid 121222) id CF397140129; Tue, 12 Jun 2018 00:05:28 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Tue, 12 Jun 2018 00:04:56 -0600 Message-Id: <20180612060502.196817-3-sjg@chromium.org> X-Mailer: git-send-email 2.18.0.rc1.244.gcf134e6275-goog In-Reply-To: <20180612060502.196817-1-sjg@chromium.org> References: <20180612060502.196817-1-sjg@chromium.org> Cc: Heinrich Schuchardt , Tom Rini Subject: [U-Boot] [PATCH v2 2/8] console: Fix handling of NULL global_data X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Both putc() and puts() can be called before global_data is set up. Some of the code paths don't handle this correctly. Add an explicit test before any member is accessed. Reported-by: Coverity (CID: 169030) Signed-off-by: Simon Glass Reviewed-by: Heinrich Schuchardt --- Changes in v2: None common/console.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/console.c b/common/console.c index 2688af56e1..2ba33dc574 100644 --- a/common/console.c +++ b/common/console.c @@ -502,8 +502,10 @@ void putc(const char c) return; } #endif + if (!gd) + return; #ifdef CONFIG_CONSOLE_RECORD - if (gd && (gd->flags & GD_FLG_RECORD) && gd->console_out.start) + if ((gd->flags & GD_FLG_RECORD) && gd->console_out.start) membuff_putbyte(&gd->console_out, c); #endif #ifdef CONFIG_SILENT_CONSOLE @@ -541,8 +543,10 @@ void puts(const char *s) return; } #endif + if (!gd) + return; #ifdef CONFIG_CONSOLE_RECORD - if (gd && (gd->flags & GD_FLG_RECORD) && gd->console_out.start) + if ((gd->flags & GD_FLG_RECORD) && gd->console_out.start) membuff_put(&gd->console_out, s, strlen(s)); #endif #ifdef CONFIG_SILENT_CONSOLE