From patchwork Wed May 3 21:20:10 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 758227 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3wJB196h7Qz9rxm for ; Thu, 4 May 2017 07:21:33 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 9D4EAC21C52; Wed, 3 May 2017 21:21:28 +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.7 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2 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 CC282C21C5E; Wed, 3 May 2017 21:20:34 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B7673C21C54; Wed, 3 May 2017 21:20:33 +0000 (UTC) Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) by lists.denx.de (Postfix) with ESMTPS id 52ADCC21C59 for ; Wed, 3 May 2017 21:20:16 +0000 (UTC) Received: from LT002.fritz.box ([95.222.184.236]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0Mcgur-1dNpYk1EfZ-00HxVe; Wed, 03 May 2017 23:20:15 +0200 From: Heinrich Schuchardt To: Tom Rini Date: Wed, 3 May 2017 23:20:10 +0200 Message-Id: <20170503212010.13944-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.11.0 X-Provags-ID: V03:K0:nRcKz2EGcame+vgLYQWrrONkyjVg32SK7EtNeaN9jZrA6EpaRqV fElax0NOiVq/EGbe/JzVk2Wj11GFpE1pwrzfx3V8xl10DWqsfBW8YfvagiKuMCp7nh2XzC6 STge7SgkEKw31TYMHuZVMo9ljTm5pYkfOQ7ICZEEIFPWgcsITFi/f9wK0n5WhHs6J/lHwpr +v8QA54Ub/gOKSDd16ccg== X-UI-Out-Filterresults: notjunk:1; V01:K0:WdBjKdi4GHI=:Hzcbr6ZLy2dHygYhlvp4zV vMxD5giJQhnfs6c/G0IflCmv5LWhvFrJqIFlBj3fsYHEQTbZUhEpsaJgtK7JW5h6J+XSD02qt QwtH/a6h6R0nQumeOuD3Ui5MS64M0puUZ32xZPWXRS+xlZtr3ZTPxCp4Z1k1HU8GEkWjkBja+ z94xnmhA31oCNwJIPj4ukClWvU9iSaFp24skpfXXwvIHbt/8FClTuTCd2MQmoSx/y+5v3ol1i gPww5GXNN3xojndk0eOBJE8iL9w6/J16CT0ekbQBZe+6DG5G5RIte50bro2HJG1FVXmEeR4LF 1R62gQUundEI9jRwC7CF/pk99dVpYS2Cl0bdV219PguQGApbEIlvZv9bdtr96bLca90j9U6Ln l4URv/xFERhRardxYAdSg2nWYQFfugt4tk1s01j+a/SeRX2VVNv7fPoG8N5YAUAfBxlwnMWJu mKoDJRuYrBiIb5j9NQHQ+TA4UPxy5Mfh2EkzeD4+Ikhn2oQ9wdD3ZkUMMRp77XD+TxTh549oK zt4s9RTgd+X+Ruk8OOEJjopcKyPv0Hs5Ge9PPDpsVwsg2gbJSxukmdqN7sGfEOVXjTohg70ml qylJKDsNmBHop36DazwyIINKkVBTlHbMTPkEzEOuKIM8k4ip6H9K5txg7pk80VkHUtfKn7I1j j0v8E0Y0jPhNLI9fkRF3Kuyo+a5OQc/jA4T3kX97PEqLtCYM8Dt8anIeppFmHPd9m1mzsBNBh SBbHBKsMmx8Kn6Owrf5QcSiqTLgZeFV4axmw2/6QiRTxdFgd6MF3k/6uSN4= Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [U-Boot] [PATCH 1/1] lib: circbuf: avoid possible null pointer dereference 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" We should not first dereference p and afterwards assert that is was not NULL. Instead do the assert first. The problem was indicated by cppcheck. Signed-off-by: Heinrich Schuchardt --- lib/circbuf.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/circbuf.c b/lib/circbuf.c index 9848da3b7b..6ed0516430 100644 --- a/lib/circbuf.c +++ b/lib/circbuf.c @@ -41,11 +41,13 @@ int buf_free (circbuf_t * buf) int buf_pop (circbuf_t * buf, char *dest, unsigned int len) { unsigned int i; - char *p = buf->top; + char *p; assert (buf != NULL); assert (dest != NULL); + p = buf->top; + /* Cap to number of bytes in buffer */ if (len > buf->size) len = buf->size; @@ -69,11 +71,13 @@ int buf_push (circbuf_t * buf, const char *src, unsigned int len) { /* NOTE: this function allows push to overwrite old data. */ unsigned int i; - char *p = buf->tail; + char *p; assert (buf != NULL); assert (src != NULL); + p = buf->tail; + for (i = 0; i < len; i++) { *p++ = src[i]; if (p == buf->end) {