From patchwork Tue Oct 23 18:54:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jim Mattson X-Patchwork-Id: 10653509 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 649FE14BB for ; Tue, 23 Oct 2018 18:54:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5154229F73 for ; Tue, 23 Oct 2018 18:54:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 43F522A2FC; Tue, 23 Oct 2018 18:54:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI, USER_IN_DEF_DKIM_WL autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D6EB629F73 for ; Tue, 23 Oct 2018 18:54:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729165AbeJXDT3 (ORCPT ); Tue, 23 Oct 2018 23:19:29 -0400 Received: from mail-it1-f202.google.com ([209.85.166.202]:51093 "EHLO mail-it1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728864AbeJXDT3 (ORCPT ); Tue, 23 Oct 2018 23:19:29 -0400 Received: by mail-it1-f202.google.com with SMTP id h20-v6so2437389ita.0 for ; Tue, 23 Oct 2018 11:54:51 -0700 (PDT) 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=db84GV7FNO3u7OJC3/mfu6fK6V0vlaqE1JIrUB3DJvo=; b=D/5Es8JgnvxdZVxJFQ1YH+qBPud7gu5atdBrM3fiNy2jTEx5x2Sb0+KXrm5ZhK66KR alMAAkrCvk8QXIHaJJWGMybHoY3gqthpJt0Pjv2pULVF3pX8EQUf3qPubYW/ZzaX55WY kkFv3oMgYjXY9dNPASfr2DWX2qaOOe8RvPf0DuDk197wKR6EmlBgD/roq4tMdVVjW3i6 NRjK/QTfDdRyHLIH11f58xOXXvF4bHf/wXXAndkfa/mhVOAHqf5ZwMnqoxhM3sJ/Jyw/ ObT1Dct4v2H/0yMqeRvf485xpj+I5+MDqPutTTiwqnt208FCJD5zZ2Ek5DbovE8V485V 0H0A== 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=db84GV7FNO3u7OJC3/mfu6fK6V0vlaqE1JIrUB3DJvo=; b=olFh0dWU2uIzu8PijCJ8x4gkv804s1ZmKCFpaao9hIyXvAKpNp7O/V6HZDO6QRBFSO OBx4MYwfBn9eSzbCkqhmET3rQABIbvsZwTfjHXMSz001vYqIeo1esGYe2OUO4EE6f0/9 sXrv5VlL+oo1Oo36fd+eqX0ohguoBgQMT4kEiRgjyracuYubeQXVr7yBQbAU+gghMbzz UmP4q2uy931z/15b6x29rd9kl98pR+y6Wg/z73kRQCi1cHyPoOHz8Subdxe+3DnL3B1k dNcPxocgpCPPyZVkc/tR9y21Sy7hwMJLvl68gid1U2CX3UaaWzbrAiTW3PofvNd64BQW UfGg== X-Gm-Message-State: ABuFfogeAO99x7OkUAKZpEbX1FzYGy0qsJs/6Ylcb7ENwG60uh6SS/Vv qMFzS69acypST3u5n4TmOc1c6DLrn5tfEZrSpSnu2Csl/NfR2l+Mhm6JNAQlF6lv/hTb12LwBo3 xFyTzRNf/YH9zqgLYwqm5uTxc860ePUuaMuuupR71Ak3Ta/DWGhW3Gk0x1tTHOQY= X-Google-Smtp-Source: ACcGV62uZ3CndTvmbrFVXb/ebxoqq3Uj8Uu/eUv3ZE0OeZJupLnfyvG8WtcU5kUjE36l9lpAfeF7ghv7tZUpTA== X-Received: by 2002:a24:ee8b:: with SMTP id b133-v6mr16677617iti.37.1540320891287; Tue, 23 Oct 2018 11:54:51 -0700 (PDT) Date: Tue, 23 Oct 2018 11:54:41 -0700 In-Reply-To: <20181015170828.GA25470@linux.intel.com> Message-Id: <20181023185441.68690-1-jmattson@google.com> Mime-Version: 1.0 References: <20181015170828.GA25470@linux.intel.com> X-Mailer: git-send-email 2.19.1.568.g152ad8e336-goog Subject: [PATCH v4] kvm: x86: Bounds-check argument to x86_exception_has_error_code From: Jim Mattson To: kvm@vger.kernel.org Cc: Jim Mattson , Marc Orr , Sean Christopherson Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Only architecturally defined exceptions in the range [0, 31] may have error codes. The caller to x86_exception_has_error_code() should ensure that the vector operand is in the range [0, 31]. Note that the one existing call site already does the right thing. Cc: Marc Orr Cc: Sean Christopherson Signed-off-by: Jim Mattson --- arch/x86/kvm/x86.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kvm/x86.h b/arch/x86/kvm/x86.h index 224cd0a47568..88dae0225a92 100644 --- a/arch/x86/kvm/x86.h +++ b/arch/x86/kvm/x86.h @@ -116,6 +116,8 @@ static inline bool x86_exception_has_error_code(unsigned int vector) BIT(NP_VECTOR) | BIT(SS_VECTOR) | BIT(GP_VECTOR) | BIT(PF_VECTOR) | BIT(AC_VECTOR); + if (WARN_ONCE(vector >= 32, "vector 0x%x too large", vector)) + return false; return (1U << vector) & exception_has_error_code; }