[dpdk-dev] [PATCH v2] rte_mempool_dump() crashes with NULL rte_mempool pointer.

Wiles, Roger Keith keith.wiles at windriver.com
Wed Oct 1 17:57:31 CEST 2014


On Oct 1, 2014, at 10:43 AM, Bruce Richardson <bruce.richardson at intel.com> wrote:

> On Wed, Oct 01, 2014 at 11:02:27AM -0400, Neil Horman wrote:
>> On Wed, Oct 01, 2014 at 03:36:45PM +0200, Thomas Monjalon wrote:
>>> 2014-09-28 08:27, Neil Horman:
>>>> On Sun, Sep 28, 2014 at 05:28:44AM +0000, Wiles, Roger Keith wrote:
>>>>> Check the FILE *f and rte_mempool *mp pointers for NULL and
>>>>> return plus print out a message if RTE_LIBRTE_MEMPOOL_DEBUG is enabled.
>>>>> 
>>>>> Signed-off-by: Keith Wiles <keith.wiles at windriver.com>
>>>> 
>>>> I'm fine with this, as I think passing in a NULL mempool is clearly a bug here,
>>>> thats worth panicing over, though I wouldnt mind if we did a RTE_VERIFY_WARN
>>>> macro here instead using what I suggested in my other note
>>> 
>>> Passing a NULL mempool to rte_mempool_dump() is a bug in the application.
>>> If you look elsewhere in the DPDK code, you'll see that it's not common to do
>>> such check on input parameters.
>>> A similar discussion already happened few months ago:
>>> 	http://dpdk.org/ml/archives/dev/2014-June/003900.html
>>> 
>> Not sure what your point is here Thomas.  I think we're all in agreement that
>> NULL is a bad value to pass in here.  Are you asserting that we shouldn't bother
>> with a NULL check at all and just accept the crash as it is?
>> 
> 
> In the general case:
> * Code in the datapath should not have things like NULL checks
> * However, datapath code should generally have a debug option which turns 
>  these checks on to help debugging if needed. 
> * Code not in the datapath probably should have these checks.

IMO the last point is the reason for the rte_mempool_dump() check. We could always add a new macro (if not already defined) that could be compiled out if not enabled as a debug. I would not want to put ‘ifdef’ around that code but include the ifdef in the macro/header file. Removing ifdefs from the code .c files should be the long term goal as a side note.
> 
> My 2c here
> 
> /Bruce

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533



More information about the dev mailing list