DPDK patches and discussions
 help / color / mirror / Atom feed
From: Olivier MATZ <olivier.matz@6wind.com>
To: "Richardson, Bruce" <bruce.richardson@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH 06/11] kvargs: simpler parsing and allow duplicated keys
Date: Wed, 29 Jan 2014 23:17:34 +0100	[thread overview]
Message-ID: <52E97DFE.2060505@6wind.com> (raw)
In-Reply-To: <59AF69C657FD0841A61C55336867B5B01A995C12@IRSMSX103.ger.corp.intel.com>

Hi Bruce,

>> Also replace rte_strsplit() by more a standard function strtok_r() that is
>> easier to understand for people already knowing the libc. It also avoids
>> useless calls to strnlen(). The delimiters macros become strings instead of
>> chars due to the strtok_r() API.
>>
> 
> As a general rule, we try to use only string functions which
> track the buffer length they are working with, which is why the
> function rte_strsplit() is used. While strtok_r() is indeed a
> standard C function, why not use the code as originally written?

Thank you for your comment.

Another reason for not using rte_strsplit() is that the buffer length
argument that was given was not relevant. Indeed, the string we want to
parse initially comes from the command line arguments, which is
duplicated with strdup(). It is not stored in a fixed size buffer.

In my opinion, giving strnlen(pairs[i], MAX_ARG_STRLEN) as the size
to rte_strsplit() would not prevent the program to a segfault or to
read a corrupted string if it is not properly null-terminated.

Does it makes sense ?

Regards
Olivier

  reply	other threads:[~2014-01-29 22:16 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-28 16:06 [dpdk-dev] [PATCH 00/11] add rte_kvargs library: a key/value args parser Olivier Matz
2014-01-28 16:06 ` [dpdk-dev] [PATCH 01/11] kvargs: add a new library to parse key/value arguments Olivier Matz
2014-01-29 15:45   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 02/11] kvargs: use the new library in pmd_pcap Olivier Matz
2014-01-29 15:46   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 03/11] kvargs: remove driver name in arguments Olivier Matz
2014-01-29 15:47   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 04/11] kvargs: remove useless size field Olivier Matz
2014-01-29 17:14   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 05/11] kvargs: rework API to fix memory leak Olivier Matz
2014-01-30 11:22   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 06/11] kvargs: simpler parsing and allow duplicated keys Olivier Matz
2014-01-29 17:17   ` Richardson, Bruce
2014-01-29 22:17     ` Olivier MATZ [this message]
2014-01-30 11:23   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 07/11] kvargs: be strict when matching a key Olivier Matz
2014-01-30 11:23   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 08/11] kvargs: add const attribute in handler parameters Olivier Matz
2014-01-30 11:24   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 09/11] kvargs: add the key in handler pameters Olivier Matz
2014-01-30 11:34   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 10/11] kvargs: make the NULL key to match all entries Olivier Matz
2014-01-30 11:34   ` Richardson, Bruce
2014-01-28 16:06 ` [dpdk-dev] [PATCH 11/11] kvargs: add test case in app/test Olivier Matz
2014-01-30 11:35   ` Richardson, Bruce
2014-02-04 14:53 ` [dpdk-dev] [PATCH 00/11] add rte_kvargs library: a key/value args parser Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52E97DFE.2060505@6wind.com \
    --to=olivier.matz@6wind.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).