ubus: backport fixes for UAF and other issues
authorPetr Štetiar <ynezz@true.cz>
Mon, 21 Feb 2022 06:41:05 +0000 (07:41 +0100)
committerPetr Štetiar <ynezz@true.cz>
Mon, 21 Feb 2022 06:41:05 +0000 (07:41 +0100)
commitcc344f1513eeefc555a0e5965ea50cac95fdfe7d
treed1e3b855904bbc707f7f97a04184e01d0b3d522c
parent31bb27f35b952097ed949f59f3a6fe0dfd2d58c5
ubus: backport fixes for UAF and other issues

Backporting following fixes:

 a72457b61df0 libubus: increase stack depth for processing obj msgs
 ef038488edc3 libubus: process pending messages in data handler if stack depth is 0
 2099bb3ad997 libubus: use list_empty/list_first_entry in ubus_process_pending_msg

where at least commit 2099bb3ad997 ("libubus: use
list_empty/list_first_entry in ubus_process_pending_msg") fixes UAF
issue I've introduced in commit c5f2053dfcfd ("workaround possibly false
positive uses of memory after it is freed") while fixing another false
positive UAF reported[1] by clang's static analyzer.

Those fixes are being used in master/21.02 for about 6 months, so should
be tested enough and considered for backporting. I've runtested those
fixes on mvebu/turris-omnia and ipq40xx/glinet-b1300 devices.

1. https://openwrt.gitlab.io/-/project/ubus/-/jobs/2096090992/artifacts/build/scan/2022-02-15-150310-70-1/index.html

Signed-off-by: Petr Štetiar <ynezz@true.cz>
package/system/ubus/Makefile