From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <thomas@monjalon.net>
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com
 [66.111.4.25]) by dpdk.org (Postfix) with ESMTP id 45B801B24C;
 Mon,  9 Oct 2017 23:27:13 +0200 (CEST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
 by mailout.nyi.internal (Postfix) with ESMTP id C789520D3F;
 Mon,  9 Oct 2017 17:27:12 -0400 (EDT)
Received: from frontend2 ([10.202.2.161])
 by compute1.internal (MEProxy); Mon, 09 Oct 2017 17:27:12 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=monjalon.net; h=
 cc:content-transfer-encoding:content-type:date:from:in-reply-to
 :message-id:mime-version:references:subject:to:x-me-sender
 :x-me-sender:x-sasl-enc:x-sasl-enc; s=mesmtp; bh=rBqDJNuFVcaTiLe
 xdU121q4jCmNaEDheIUvnOJ4HkU4=; b=mYY1M5TTdRedko/LrPoj3ugNFRnzLF1
 OvZZ4qdBSQYc3GxhaBoD1qdv107TAwOuAWIZyyxQ0U4gvBPyeCR2B9G4RItEGmh3
 Jn9IIWOQTuPAf8+I97mAPwSmRP2P1t97+NWBS26zZa3OMQW759GJg/GvkicI7Vfc
 jjGdsi1XVUdo=
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-transfer-encoding:content-type
 :date:from:in-reply-to:message-id:mime-version:references
 :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s=
 fm1; bh=rBqDJNuFVcaTiLexdU121q4jCmNaEDheIUvnOJ4HkU4=; b=UAW3vqj2
 2t+EyzFvrPeMbiJaK+WAuxm3nLKpRXaPsdin56rjvhPHAajEriw2qfcxCZ6alvGv
 9wCI9yO7HFNkaBaNJhnbxquHCKvtayxp2ZHtywTNSPCyZtluBo/X1+VS4cRKWMcP
 b/pcZ93MnE98Uek5JCP527kvMdX8InLhDozqRpB5mPXQShBSNKbkx2JKF4qMQX3p
 kBV3ON3tgyoHvVW9Gu4bHT0XsONO0QJyeijiQxgXY3BhBu/cSK+GUjKGFyV/b/hJ
 WCYh4FFrnWUNEuP8o+34ndztOqGuPju1mnBLSlJEZbTfEIzDTrkV1ygi6dFB5TsN
 MnLJYB++QsvBqQ==
X-ME-Sender: <xms:sOnbWeaEmiJfEgmlHBIunI5XjqxZQPuCXtJR-TSo6RJQgTgM6xFRUg>
X-Sasl-enc: s1URKvIINy3ZvtNlhM7r3FszAO9VFC0NtHS6jVpf2Wdb 1507584432
Received: from xps.localnet (184.203.134.77.rev.sfr.net [77.134.203.184])
 by mail.messagingengine.com (Postfix) with ESMTPA id 5376B24141;
 Mon,  9 Oct 2017 17:27:12 -0400 (EDT)
From: Thomas Monjalon <thomas@monjalon.net>
To: Patrick MacArthur <patrick@patrickmacarthur.net>
Cc: dev@dpdk.org, Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>,
 stable@dpdk.org
Date: Mon, 09 Oct 2017 23:27:11 +0200
Message-ID: <94235766.fjgY1ahyDR@xps>
In-Reply-To: <afa422d4-ded4-0f1e-d205-ce6773998334@intel.com>
References: <20170804185357.6612-1-patrick@patrickmacarthur.net>
 <afa422d4-ded4-0f1e-d205-ce6773998334@intel.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
Subject: Re: [dpdk-dev] [PATCH] eal: Copy raw strings taken from command line
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 09 Oct 2017 21:27:13 -0000

04/09/2017 12:12, Sergio Gonzalez Monroy:
> On 04/08/2017 19:53, Patrick MacArthur wrote:
> > Normally, command line argument strings are considered immutable, but
> > SPDK [1] and urdma [2] construct argv arrays to pass to rte_eal_init().
> > These strings are allocated using malloc() and freed after DPDK
> > initialization with free(). However, in the case of --file-prefix and
> > --huge-dir, DPDK takes the pointer to these strings in argv directly. If
> > a secondary process calls rte_eal_pci_probe() after rte_eal_init()
> > returns, as is done by SPDK, this causes a use-after-free error because
> > the strings have been freed by the calling code immediately after
> > rte_eal_init() returns.
[...]
> > Fix this by using strdup() to create separate memory buffers for these
> > strings. Note that this patch will cause valgrind to report memory
> > leaks of these buffers as there is nowhere to free them. Using static
> > buffers is an option but would make these strings have a fixed maximum
> > length whereas there is currently no limit defined by the API.
> >
> > [1] http://spdk.io
> > [2] https://github.com/zrlio/urdma
> >
> > Fixes: af75078fece3 ("first public release")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Patrick MacArthur <patrick@patrickmacarthur.net>
> 
> Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>

Applied, thanks