From patchwork Thu Mar 20 13:51:26 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 26710 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-qg0-f69.google.com (mail-qg0-f69.google.com [209.85.192.69]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 8189E20534 for ; Thu, 20 Mar 2014 13:53:35 +0000 (UTC) Received: by mail-qg0-f69.google.com with SMTP id a108sf2045720qge.0 for ; Thu, 20 Mar 2014 06:53:34 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:date:message-id:cc:subject :precedence:list-id:list-unsubscribe:list-post:list-help :list-subscribe:mime-version:sender:errors-to:x-original-sender :x-original-authentication-results:mailing-list:list-archive :content-type:content-transfer-encoding; bh=+v+kXW445MhHouVzF1XmJRwHHZx1Fmw+O3Bv6jjAmNY=; b=mJPlJUxn4g/hHrdldiV1MNmawPsTJhjgV8Sl1I4afiDkSybatVfXukvU2eN+JQAyA/ G5fr1AdEeuQ/EDP5wpP2U6NWeoWlNjrt0crwC+HvGtGBfLaF4BOGTuzvyQGiEyfO7EdU n1VMpFN/6regJTGG0h/0V7UTiRDeOcXbLIwwSTObJUT6u4rmvMYdYihQkWhGU3XNfBza nTBbh9DsyHMfp/Mj/s6+rVcO3xY8iz4ddtZnMwAwl1YPDukqvah3vehsgM78vGWo9ocb yWnboiZSV1Do0OOAc+geNPKpgL4oJhKcJebG1IGanZ2Urq4IEMxpvOUWwjeHwDcnz7U/ CudA== X-Gm-Message-State: ALoCoQlK8rO0PSeQSWiVrpf/7p/Uh/fA9pghASLBShbS0crxWz7So+/DKW10I/eKR9Lkq0iSu9aq X-Received: by 10.58.112.1 with SMTP id im1mr7307797veb.33.1395323614951; Thu, 20 Mar 2014 06:53:34 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.41.40 with SMTP id y37ls18967qgy.10.gmail; Thu, 20 Mar 2014 06:53:34 -0700 (PDT) X-Received: by 10.220.44.20 with SMTP id y20mr134512vce.60.1395323614840; Thu, 20 Mar 2014 06:53:34 -0700 (PDT) Received: from mail-ve0-f180.google.com (mail-ve0-f180.google.com [209.85.128.180]) by mx.google.com with ESMTPS id ie18si444850vec.67.2014.03.20.06.53.34 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 20 Mar 2014 06:53:34 -0700 (PDT) Received-SPF: neutral (google.com: 209.85.128.180 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) client-ip=209.85.128.180; Received: by mail-ve0-f180.google.com with SMTP id jz11so963803veb.11 for ; Thu, 20 Mar 2014 06:53:34 -0700 (PDT) X-Received: by 10.58.96.36 with SMTP id dp4mr13467734veb.21.1395323614533; Thu, 20 Mar 2014 06:53:34 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.220.78.9 with SMTP id i9csp389813vck; Thu, 20 Mar 2014 06:53:34 -0700 (PDT) X-Received: by 10.140.93.77 with SMTP id c71mr46841757qge.53.1395323613496; Thu, 20 Mar 2014 06:53:33 -0700 (PDT) Received: from lists.xen.org (lists.xen.org. [50.57.142.19]) by mx.google.com with ESMTPS id b7si789049qad.37.2014.03.20.06.53.32 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 20 Mar 2014 06:53:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of xen-devel-bounces@lists.xen.org designates 50.57.142.19 as permitted sender) client-ip=50.57.142.19; Received: from localhost ([127.0.0.1] helo=lists.xen.org) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WQdNe-0004uU-Vd; Thu, 20 Mar 2014 13:51:34 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WQdNd-0004uL-2T for xen-devel@lists.xenproject.org; Thu, 20 Mar 2014 13:51:33 +0000 Received: from [85.158.137.68:58781] by server-6.bemta-3.messagelabs.com id D8/70-00470-462FA235; Thu, 20 Mar 2014 13:51:32 +0000 X-Env-Sender: julien.grall@linaro.org X-Msg-Ref: server-16.tower-31.messagelabs.com!1395323491!1913894!1 X-Originating-IP: [74.125.83.48] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 6.11.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 15872 invoked from network); 20 Mar 2014 13:51:31 -0000 Received: from mail-ee0-f48.google.com (HELO mail-ee0-f48.google.com) (74.125.83.48) by server-16.tower-31.messagelabs.com with RC4-SHA encrypted SMTP; 20 Mar 2014 13:51:31 -0000 Received: by mail-ee0-f48.google.com with SMTP id b57so683709eek.21 for ; Thu, 20 Mar 2014 06:51:31 -0700 (PDT) X-Received: by 10.14.7.65 with SMTP id 41mr3749238eeo.100.1395323490952; Thu, 20 Mar 2014 06:51:30 -0700 (PDT) Received: from belegaer.uk.xensource.com. ([185.25.64.249]) by mx.google.com with ESMTPSA id 48sm4350585eee.2.2014.03.20.06.51.29 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 20 Mar 2014 06:51:30 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xenproject.org Date: Thu, 20 Mar 2014 13:51:26 +0000 Message-Id: <1395323486-9891-1-git-send-email-julien.grall@linaro.org> X-Mailer: git-send-email 1.7.10.4 Cc: stefano.stabellini@citrix.com, Julien Grall , tim@xen.org, ian.campbell@citrix.com Subject: [Xen-devel] [PATCH] xen/arm: domain_vgic_init: Check xzalloc_* return X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Post: , List-Help: , List-Subscribe: , MIME-Version: 1.0 Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: julien.grall@linaro.org X-Original-Authentication-Results: mx.google.com; spf=neutral (google.com: 209.85.128.180 is neither permitted nor denied by best guess record for domain of patch+caf_=patchwork-forward=linaro.org@linaro.org) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 List-Archive: The allocations for shared_irqs and pending_irqs are not checked and use later. This may lead to a Xen segfault if the hypervisor run out of memory. Signed-off-by: Julien Grall --- This patch should be backported to Xen 4.4 --- xen/arch/arm/vgic.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index 553411d..9fc9586 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -89,8 +89,17 @@ int domain_vgic_init(struct domain *d) d->arch.vgic.shared_irqs = xzalloc_array(struct vgic_irq_rank, DOMAIN_NR_RANKS(d)); + if ( d->arch.vgic.shared_irqs == NULL ) + return -ENOMEM; + d->arch.vgic.pending_irqs = xzalloc_array(struct pending_irq, d->arch.vgic.nr_lines); + if ( d->arch.vgic.pending_irqs == NULL ) + { + xfree(d->arch.vgic.shared_irqs); + return -ENOMEM; + } + for (i=0; iarch.vgic.nr_lines; i++) { INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].inflight);