git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cmdline: fix overflow on bsd
[dpdk.git]
/
lib
/
librte_cmdline
/
cmdline_parse_portlist.c
diff --git
a/lib/librte_cmdline/cmdline_parse_portlist.c
b/lib/librte_cmdline/cmdline_parse_portlist.c
index
7eac05c
..
834f2e6
100644
(file)
--- a/
lib/librte_cmdline/cmdline_parse_portlist.c
+++ b/
lib/librte_cmdline/cmdline_parse_portlist.c
@@
-127,7
+127,7
@@
parse_ports(cmdline_portlist_t * pl, const char * str)
int
cmdline_parse_portlist(__attribute__((unused)) cmdline_parse_token_hdr_t *tk,
int
cmdline_parse_portlist(__attribute__((unused)) cmdline_parse_token_hdr_t *tk,
-
const char *buf, void *res
)
+
const char *buf, void *res, unsigned ressize
)
{
unsigned int token_len = 0;
char portlist_str[PORTLIST_TOKEN_SIZE+1];
{
unsigned int token_len = 0;
char portlist_str[PORTLIST_TOKEN_SIZE+1];
@@
-136,6
+136,9
@@
cmdline_parse_portlist(__attribute__((unused)) cmdline_parse_token_hdr_t *tk,
if (!buf || ! *buf)
return (-1);
if (!buf || ! *buf)
return (-1);
+ if (res && ressize < PORTLIST_TOKEN_SIZE)
+ return -1;
+
pl = res;
while (!cmdline_isendoftoken(buf[token_len]) &&
pl = res;
while (!cmdline_isendoftoken(buf[token_len]) &&