blobmsg: fix wrong payload len passed from blobmsg_check_array
authorPetr Štetiar <ynezz@true.cz>
Sat, 28 Dec 2019 18:00:39 +0000 (19:00 +0100)
committerPetr Štetiar <ynezz@true.cz>
Sat, 28 Dec 2019 20:17:46 +0000 (21:17 +0100)
commitcd75136b1342e1e9dabf921be13240c6653640ed
treeda548e77a0846762c7f323cbaea439cfb7201f00
parenteb7eb6393d47a918c420f5b287946dbd6c0d5f57
blobmsg: fix wrong payload len passed from blobmsg_check_array

Fix incorrect use of blob_raw_len() on passed blobmsg to
blobmsg_check_array_len()  introduced in commit b0e21553ae8c ("blobmsg:
add _len variants for all attribute checking methods") by using correct
blobmsg_len().

This wrong (higher) length was then for example causing issues in
procd's instance_config_parse_command() where blobmsg_check_attr_list()
was failing sanity checking of service command, thus resulting in the
startup failures of some services like collectd, nlbwmon and samba4.

Ref: http://lists.infradead.org/pipermail/openwrt-devel/2019-December/020840.html
Fixes: b0e21553ae8c ("blobmsg: add _len variants for all attribute checking methods")
Reported-by: Hannu Nyman <hannu.nyman@welho.com>
Tested-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
blobmsg.c
tests/cram/inputs/procd-instance-nlbwmon.bin [new file with mode: 0644]
tests/cram/test_blobmsg_procd_instance.t [new file with mode: 0644]
tests/test-blobmsg-procd-instance.c [new file with mode: 0644]