uci: fix options list of section after type change
authorSven Eckelmann <sven@narfation.org>
Fri, 17 May 2019 12:30:06 +0000 (14:30 +0200)
committerHans Dedecker <dedeckeh@gmail.com>
Fri, 17 May 2019 16:10:22 +0000 (18:10 +0200)
commitf199b961c2970b63cc83947ad49b327b3f48f05f
treecd0116ff30e3289fc85027616bd50ae0fb5dbeaf
parent4c8b4d6efc8302b508d261573351fffb75bd98c2
uci: fix options list of section after type change

A section can store its name in the same memory region as the section
(after the actual section object). The object is then reallocated when the
type is later changed via an uci_set. But the original address of the
section is (indirectly) stored in the section list, the object and the
object list (HEAD) of this section.

But only the section list was fixed in commit 4fb6a564b8ee ("clean up
uci_set") after the realloc finished. Traversing the object list or
accessing the section pointer caused heap-use-after-free errors.

Reported-by: Charlemagne Lasse <charlemagnelasse@gmail.com>
Fixes: 4fb6a564b8ee ("clean up uci_set")
Signed-off-by: Sven Eckelmann <sven@narfation.org>
list.c