cfgfile: constrain string search
authorAllain Legacy <allain.legacy@windriver.com>
Fri, 31 Mar 2017 13:52:01 +0000 (09:52 -0400)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 4 Apr 2017 14:32:06 +0000 (16:32 +0200)
commit8eaff74f22cc762e98a4f4adfcbe75e0f74a80a3
tree5946b8023aee29cde72a6bb7fc406e35f31dd244
parentf3b1a6981f4ab0628cd29543f01b33541d8ca969
cfgfile: constrain string search

The call to memchr() uses the absolute length of the string buffer instead
of the actual length of the string returned by fgets().  This causes the
search to go beyond the '\n' character and find ';' characters in random
garbage on the stack.  This then causes the 'len' variable to be updated
and the subsequent search for the '=' character to potentially find one
beyond the first newline character.

Since this bug relies on ';' and '=' characters appearing in random places
in the 'buffer' variable it is intermittently reproducible at best.

Signed-off-by: Allain Legacy <allain.legacy@windriver.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
lib/librte_cfgfile/rte_cfgfile.c