Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1535181pxa; Sun, 2 Aug 2020 11:02:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx5sdgk/ATDcc7AFov+0YOegeZ7R8DKmC6J+jY+xISzOYoF1qn/Il382P+SWhwXWgWi9Go1 X-Received: by 2002:a17:906:3614:: with SMTP id q20mr13049334ejb.142.1596391375160; Sun, 02 Aug 2020 11:02:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596391375; cv=none; d=google.com; s=arc-20160816; b=ObOKjqG92oqH67PL9MP/SDa+xWH2P62SQE0GMA+Sm7DUE/phHhny8YSXlmawa7S1Kg qCsn584nZI5T0a+WqoHtRZ6vW+PR0UDkPIao75oaN9mVR2P6goSMwv9e91QBy3ogM/BW BSpi+6Yq81gtgf/oz1jgbC94N1fqKoduTS+S5rFbW6MpWLMAy9x4lzgtLETe4u8okst8 kWjmUlhQaA3lluOSpala74vbyLh5pm2EkvZSZx9yqaAZDFsQJ2jeRzMzAOsYnyEGzWFP R53GuIZELIPpRtyiTKlYlRAXBn5osx1yzjVaPOsDR1DXs4RqKNBzXq0Y9/LS7ESgQgWY m6Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=cMGJeihf68/SzYvQTtJu1Xd1NxXkQ2OyiZYDKiEiLwg=; b=PYRXs2qyFiwDLGbl7KOmDGBRC4GoeirE6WPjJ6BDvnJSRWTP+MjwGK+mXu7f5KA4CJ avRDDmwadYIh5iWdZsGccfbby7ZkywpBhatsR+26OIF/+hoPm6BROkUh6sbZuiTD/xeX gF8Ng5Z1jJD8Zfky46phYHqInvYfd6uIkB00lI8sydOeIFfuBycNbePStMpAhlxLCGnW tSXg1L8dQ2pJeZfSYNU2ZQHPhGNRnNm/CwXgOJH2zz0WFmNvPEKUIEp2hjbMtbL6NMjW zBOtru8hk19jNhIENqXyJ0+X+Vzml0B6B7ChqUqUWWtuIKO57Nt+Q8AwZvgVOYV9+YqP mcxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=gbkTXtQM; 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=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a23si7824313edu.115.2020.08.02.11.02.32; Sun, 02 Aug 2020 11:02:55 -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=@redhat.com header.s=mimecast20190719 header.b=gbkTXtQM; 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=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726806AbgHBRM4 (ORCPT + 99 others); Sun, 2 Aug 2020 13:12:56 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:50657 "EHLO us-smtp-delivery-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725793AbgHBRM4 (ORCPT ); Sun, 2 Aug 2020 13:12:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1596388375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc; bh=cMGJeihf68/SzYvQTtJu1Xd1NxXkQ2OyiZYDKiEiLwg=; b=gbkTXtQMHihK7N01Uirq2DhxG8phfN1uVr8WsTcglUbYXwE8WzWoVmEcH98cae+ykcYbTz fclaH71IyD4hogsbZFeFivKCtkIwFwLA7pY1wTVwYa1mV7o73WnvDUtJAw8V3ZRMNxVP8/ 2FlqVJ8b5KqfJ6oy37yV/mg74npC8DY= Received: from mail-qk1-f200.google.com (mail-qk1-f200.google.com [209.85.222.200]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-402-NQ4EN8QMNIW6wi6wV5Gjpw-1; Sun, 02 Aug 2020 13:12:53 -0400 X-MC-Unique: NQ4EN8QMNIW6wi6wV5Gjpw-1 Received: by mail-qk1-f200.google.com with SMTP id g4so14705785qki.8 for ; Sun, 02 Aug 2020 10:12:53 -0700 (PDT) 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=cMGJeihf68/SzYvQTtJu1Xd1NxXkQ2OyiZYDKiEiLwg=; b=fQjeYsisgRsZPIj3nJ6ApGSK/9/R5OiH9fDkZ3Q+5cwDb6jgkUFzxyFIw2Hy/zDS+Q /qLjklEtMBxJsHMcnR9R5DcZN0hm1nCjMSYK/Mja7LsRrUm/cWyatOTIGboL+Ok9FuDk Q3XLny5a0SCewae1VNIawil4fkg7ZSbTCNWL6/OCxu9SgtxdE4VCRQp+vw3ZmwjSvVRn 4Jhyx3e/zb3jkctmxvEir4/QC7ctPOF3UseaJpPnlqLbwH+R+Ox8YbLO1SjIS8ITP7+0 jjACorRGlVqblz9AZUo31QbLkbx5kXXiZUvolhCP0bb00RRhUiw7kun+0sK58P1+ruMi UkMg== X-Gm-Message-State: AOAM533Nw89G6IX5uRAIz3UnStuL7dAnnirEhVVlPkVqHJLth8KZyXNi pyIv9XLC5pDImyrE2pswPJiVLlWHAkNmganucRIy0D8YlVGRrGHJZj9m07k59Fb7JVmVvgZmpZq S0hZZq5SOw/sN4v12GHMluHKC X-Received: by 2002:a37:910:: with SMTP id 16mr12366640qkj.466.1596388372916; Sun, 02 Aug 2020 10:12:52 -0700 (PDT) X-Received: by 2002:a37:910:: with SMTP id 16mr12366617qkj.466.1596388372629; Sun, 02 Aug 2020 10:12:52 -0700 (PDT) Received: from trix.remote.csb (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id a3sm16735354qkf.131.2020.08.02.10.12.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Aug 2020 10:12:52 -0700 (PDT) From: trix@redhat.com To: herbert@gondor.apana.org.au, davem@davemloft.net, smueller@chronox.de Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, Tom Rix Subject: [PATCH] crypto: drbg: check blocklen is non zero Date: Sun, 2 Aug 2020 10:12:47 -0700 Message-Id: <20200802171247.16558-1-trix@redhat.com> X-Mailer: git-send-email 2.18.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Tom Rix Clang static analysis reports this error crypto/drbg.c:441:40: warning: Division by zero padlen = (inputlen + sizeof(L_N) + 1) % (drbg_blocklen(drbg)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ When drbg_bocklen fails it returns 0. if (drbg && drbg->core) return drbg->core->blocklen_bytes; return 0; In many places in drbg_ctr_df drbg_bocklen is assumed to be non zero. So turn the assumption into a check. Fixes: 541af946fe13 ("crypto: drbg - SP800-90A Deterministic Random Bit Generator") Signed-off-by: Tom Rix --- crypto/drbg.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crypto/drbg.c b/crypto/drbg.c index e99fe34cfa00..bd9a137e5473 100644 --- a/crypto/drbg.c +++ b/crypto/drbg.c @@ -420,6 +420,9 @@ static int drbg_ctr_df(struct drbg_state *drbg, size_t inputlen = 0; struct drbg_string *seed = NULL; + if (!drbg_blocklen(drbg)) + return -EINVAL; + memset(pad, 0, drbg_blocklen(drbg)); memset(iv, 0, drbg_blocklen(drbg)); -- 2.18.1