From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id 0E4B02AA0 for ; Sun, 20 May 2018 15:08:34 +0200 (CEST) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id B167520B4F; Sun, 20 May 2018 09:08:33 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Sun, 20 May 2018 09:08:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; h=cc:date:from:in-reply-to:message-id:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=VMCGMETECZy/JXOkh GYU8A7qA6FvALKl9ljNkWrM/Y0=; b=Fa291vXT607eW35Swgz1AAPFPwr/RXeYR biwkqyQ75IhK/Zcam3tZFMLupPuriDG/QlOQp5XQMdcNsDl4U2vXCh3ElE+YXukV 8E21xQPhsyLXxkxxo2ROF0/TlwqPntEgWpFdsBfGmqrzr24/MtA5rjiKjebAgyY4 PFsPVsmvtmQYXrEo+wiCClUBbA5DezZNCeG8OBXZ1DTrIVxk6mr/YCVpPHsrrDvy oO3E/vvyp2OJwz0EGw9fux8s974H1ptbaoQqy55L83rWMXmr8O5APvzcYtRZqFZB XHXKXtCPPz8PvYYZHV6soD0o1YPFudxgKU4NrvzfjStqg39dd+mbA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=VMCGMETECZy/JXOkhGYU8A7qA6FvALKl9ljNkWrM/Y0=; b=F59zy/Aa QvoIvP8UCDkTn9yM2vJPq9ewyCbTRTNj9JIs4mTJNJfU371+MGOLUS/oz2dvCq/3 jThiKaURHiv7UTnH9PXNNrO5HAONi/QlRMKslyoRW1/F5+eJUemMCHx80jrz3Aq/ SpRT65mjAqkDYg5yBfLayowyDL7/B9D11MUaJdOmh6jBvRAYZSbIoj4XSPKxJPjc v4pzbtiSjpr3YmFyuRggf2vCUGKb0M8RKBz1qFEebGWLTn346FhXsEMG+jRvZPTR EUKw8E0cGUoYjGd70zNkAhPm0E2MkT+x6liu+xr3WRy00Xx/+MbkOLbL6SkOEltk bxx02fAqU77Zjg== X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Proxy: X-ME-Sender: Received: from yuanhanliu-NB0.tencent.com (unknown [223.74.148.80]) by mail.messagingengine.com (Postfix) with ESMTPA id EF7B21025C; Sun, 20 May 2018 09:08:31 -0400 (EDT) From: Yuanhan Liu To: Pablo de Lara Cc: Fan Zhang , dpdk stable Date: Sun, 20 May 2018 21:02:18 +0800 Message-Id: <20180520130246.16287-2-yliu@fridaylinux.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180520130246.16287-1-yliu@fridaylinux.org> References: <20180520130246.16287-1-yliu@fridaylinux.org> Subject: [dpdk-stable] patch 'crypto/scheduler: set null pointer after freeing' has been queued to LTS release 17.11.3 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: Sun, 20 May 2018 13:08:34 -0000 Hi, FYI, your patch has been queued to LTS release 17.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/27/18. So please shout if anyone has objections. Thanks. --yliu --- >>From 3a9d1792312fea4a7615255566f4991a6b730f5e Mon Sep 17 00:00:00 2001 From: Pablo de Lara Date: Thu, 26 Apr 2018 16:09:49 +0100 Subject: [PATCH] crypto/scheduler: set null pointer after freeing [ upstream commit 06f0a569972bebe22feeffd92c283954abc08359 ] When freeing memory, pointers should be set to NULL, to avoid memory corruption/segmentation faults. Fixes: 31439ee72b2c ("crypto/scheduler: add API implementations") Fixes: 50e14527b9d1 ("crypto/scheduler: improve parameters parsing") Fixes: 57523e682bb7 ("crypto/scheduler: register operation functions") Fixes: a783aa634410 ("crypto/scheduler: add packet size based mode") Fixes: 4c07e0552f0a ("crypto/scheduler: add multicore scheduling mode") Signed-off-by: Pablo de Lara Acked-by: Fan Zhang --- drivers/crypto/scheduler/rte_cryptodev_scheduler.c | 8 ++++++-- drivers/crypto/scheduler/scheduler_multicore.c | 6 ++++-- drivers/crypto/scheduler/scheduler_pkt_size_distr.c | 4 +++- drivers/crypto/scheduler/scheduler_pmd_ops.c | 9 +++++++-- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c index 822ce27ce..59ece9574 100644 --- a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c +++ b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c @@ -119,8 +119,10 @@ update_scheduler_capability(struct scheduler_ctx *sched_ctx) struct rte_cryptodev_capabilities tmp_caps[256] = { {0} }; uint32_t nb_caps = 0, i; - if (sched_ctx->capabilities) + if (sched_ctx->capabilities) { rte_free(sched_ctx->capabilities); + sched_ctx->capabilities = NULL; + } for (i = 0; i < sched_ctx->nb_slaves; i++) { struct rte_cryptodev_info dev_info; @@ -490,8 +492,10 @@ rte_cryptodev_scheduler_load_user_scheduler(uint8_t scheduler_id, sched_ctx->ops.option_set = scheduler->ops->option_set; sched_ctx->ops.option_get = scheduler->ops->option_get; - if (sched_ctx->private_ctx) + if (sched_ctx->private_ctx) { rte_free(sched_ctx->private_ctx); + sched_ctx->private_ctx = NULL; + } if (sched_ctx->ops.create_private_ctx) { int ret = (*sched_ctx->ops.create_private_ctx)(dev); diff --git a/drivers/crypto/scheduler/scheduler_multicore.c b/drivers/crypto/scheduler/scheduler_multicore.c index 0cd5bce53..8617c480e 100644 --- a/drivers/crypto/scheduler/scheduler_multicore.c +++ b/drivers/crypto/scheduler/scheduler_multicore.c @@ -356,11 +356,13 @@ static int scheduler_create_private_ctx(struct rte_cryptodev *dev) { struct scheduler_ctx *sched_ctx = dev->data->dev_private; - struct mc_scheduler_ctx *mc_ctx; + struct mc_scheduler_ctx *mc_ctx = NULL; uint16_t i; - if (sched_ctx->private_ctx) + if (sched_ctx->private_ctx) { rte_free(sched_ctx->private_ctx); + sched_ctx->private_ctx = NULL; + } mc_ctx = rte_zmalloc_socket(NULL, sizeof(struct mc_scheduler_ctx), 0, rte_socket_id()); diff --git a/drivers/crypto/scheduler/scheduler_pkt_size_distr.c b/drivers/crypto/scheduler/scheduler_pkt_size_distr.c index 1dd1bc321..4874191b3 100644 --- a/drivers/crypto/scheduler/scheduler_pkt_size_distr.c +++ b/drivers/crypto/scheduler/scheduler_pkt_size_distr.c @@ -362,8 +362,10 @@ scheduler_create_private_ctx(struct rte_cryptodev *dev) struct scheduler_ctx *sched_ctx = dev->data->dev_private; struct psd_scheduler_ctx *psd_ctx; - if (sched_ctx->private_ctx) + if (sched_ctx->private_ctx) { rte_free(sched_ctx->private_ctx); + sched_ctx->private_ctx = NULL; + } psd_ctx = rte_zmalloc_socket(NULL, sizeof(struct psd_scheduler_ctx), 0, rte_socket_id()); diff --git a/drivers/crypto/scheduler/scheduler_pmd_ops.c b/drivers/crypto/scheduler/scheduler_pmd_ops.c index d9b523524..75433db2a 100644 --- a/drivers/crypto/scheduler/scheduler_pmd_ops.c +++ b/drivers/crypto/scheduler/scheduler_pmd_ops.c @@ -74,6 +74,7 @@ scheduler_attach_init_slave(struct rte_cryptodev *dev) sched_ctx->init_slave_names[i]); rte_free(sched_ctx->init_slave_names[i]); + sched_ctx->init_slave_names[i] = NULL; sched_ctx->nb_init_slaves -= 1; } @@ -289,11 +290,15 @@ scheduler_pmd_close(struct rte_cryptodev *dev) } } - if (sched_ctx->private_ctx) + if (sched_ctx->private_ctx) { rte_free(sched_ctx->private_ctx); + sched_ctx->private_ctx = NULL; + } - if (sched_ctx->capabilities) + if (sched_ctx->capabilities) { rte_free(sched_ctx->capabilities); + sched_ctx->capabilities = NULL; + } return 0; } -- 2.11.0