From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) by dpdk.org (Postfix) with ESMTP id 151964CA6 for ; Fri, 27 Jul 2018 12:39:16 +0200 (CEST) Received: by mail-lj1-f195.google.com with SMTP id f8-v6so4059655ljk.1 for ; Fri, 27 Jul 2018 03:39:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=39Jm/P/vTyLW8kRvy3VbFYt27n85bHhcc2XN6SifXV4=; b=v5S5RQ34osqAkVfz4YkJBnUWhS0MtRPkwDFT98TfEsUtyHP28c1GxYA+561tzcQW7R LmFtL0kLYkbQCdmxtDpBI5v2pgmy0TJ1mhTwOwu//So1WKiPzJBsfRLloE124+vZR8G4 uy0cSkNBu5ZcdZITJ6XJPjy3Oi5gBeRWImqz9gFrMlMadAwAWugxt0bcT6WrnhfpgZsv 0Uf2Vw78tVDSKBUor99pOHaExOqkU+2yrnYoJc+8xcN17HQNa6s6UzqtsjVYmUsFdmYQ TfPGCIIOZM8StlkqG8BNMi1ofNgDpPedfAnWjozb8FtMQPNYV5FQtZ2ZIEJUki/pb8JW qAHQ== 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:in-reply-to :references; bh=39Jm/P/vTyLW8kRvy3VbFYt27n85bHhcc2XN6SifXV4=; b=ZeFud397ZVUGmbFNhjoUI612pn12ngF9aYiyVZZ0nT//iQgBbu2d7GrOf8rR3kWfft Iljs2Vomiwj8GY0uGjrwptz8yS0OkZ0KtlKl1+LWs0RsIl2DUZ4wbZ3igveXH4epMXVs fXjk+3hQuRr3AoRKIOfgx6wybCQWa1wOO+t437oYB16WWyCGRAU0CQ7jcNtbMh0Y9CaA J+hKPtYRM0JFDRMX9WdXnE5c0s0f9qxZyKfStHwEdo8ddcLojPAvCJTtkZtlp61X1wyH 7mwBDEuYly+kibrKmLkZaYU9yG0Uo0ERYh3Uj3Fs18D6+MbyeP2mUkQOEAn2ig9ogstf d+ig== X-Gm-Message-State: AOUpUlEtqhzt7/qmgW55JT7tUYL+aIJj9WIJ/v/KYgC+9Zg5nUTOpRIW /mL2rybqQmtrphn1WVSNnqRPUZ2B6xI= X-Google-Smtp-Source: AAOMgpepGItaFpxzfG4vuZytL1dUZGBbht+FccEeQ6JT9ILFLgdL2MtbKHI8NW/bbzq8fCV1o6EZHA== X-Received: by 2002:a2e:9ec9:: with SMTP id h9-v6mr1488559ljk.133.1532687955308; Fri, 27 Jul 2018 03:39:15 -0700 (PDT) Received: from rafalkozik.semihalf.local (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id f198-v6sm495487lfg.86.2018.07.27.03.39.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 27 Jul 2018 03:39:14 -0700 (PDT) From: Rafal Kozik To: stable@dpdk.org Cc: mw@semihalf.com, mk@semihalf.com, gtzalik@amazon.com, evgenys@amazon.com, matua@amazon.com, igorch@amazon.com, yskoh@mellanox.com, Rafal Kozik Date: Fri, 27 Jul 2018 12:39:05 +0200 Message-Id: <1532687946-14276-3-git-send-email-rk@semihalf.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1532687946-14276-1-git-send-email-rk@semihalf.com> References: <1532687946-14276-1-git-send-email-rk@semihalf.com> Subject: [dpdk-stable] [17.11 2/3] net/ena: check pointer before memset X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Jul 2018 10:39:16 -0000 [ backported from upstream commit 46916aa17d4b2007df8c0454f99ba0ca8b8cb93b ] Need to check if memory allocation succeed before using it. Using memset on NULL pointer cause segfault. Fixes: 9ba7981ec992 ("ena: add communication layer for DPDK") Signed-off-by: Rafal Kozik Acked-by: Michal Krawczyk --- drivers/net/ena/base/ena_plat_dpdk.h | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/net/ena/base/ena_plat_dpdk.h b/drivers/net/ena/base/ena_plat_dpdk.h index accecf5..362741a 100644 --- a/drivers/net/ena/base/ena_plat_dpdk.h +++ b/drivers/net/ena/base/ena_plat_dpdk.h @@ -189,10 +189,15 @@ typedef uint64_t dma_addr_t; snprintf(z_name, sizeof(z_name), \ "ena_alloc_%d", ena_alloc_cnt++); \ mz = rte_memzone_reserve(z_name, size, SOCKET_ID_ANY, 0); \ - memset(mz->addr, 0, size); \ - virt = mz->addr; \ - phys = mz->iova; \ handle = mz; \ + if (mz == NULL) { \ + virt = NULL; \ + phys = 0; \ + } else { \ + memset(mz->addr, 0, size); \ + virt = mz->addr; \ + phys = mz->iova; \ + } \ } while (0) #define ENA_MEM_FREE_COHERENT(dmadev, size, virt, phys, handle) \ ({ ENA_TOUCH(size); ENA_TOUCH(phys); \ @@ -207,9 +212,14 @@ typedef uint64_t dma_addr_t; snprintf(z_name, sizeof(z_name), \ "ena_alloc_%d", ena_alloc_cnt++); \ mz = rte_memzone_reserve(z_name, size, node, 0); \ - memset(mz->addr, 0, size); \ - virt = mz->addr; \ - phys = mz->iova; \ + if (mz == NULL) { \ + virt = NULL; \ + phys = 0; \ + } else { \ + memset(mz->addr, 0, size); \ + virt = mz->addr; \ + phys = mz->iova; \ + } \ } while (0) #define ENA_MEM_ALLOC_NODE(dmadev, size, virt, node, dev_node) \ -- 2.7.4