[OpenWrt-Devel] procd fails to start /sbin/netifd randomly (libubox regression)
Rafał Miłecki
zajec5 at gmail.com
Sun May 24 10:28:48 EDT 2020
On 23.05.2020 12:22, Rafał Miłecki wrote:
> On 22.05.2020 11:28, Rafał Miłecki wrote:
>> Failed restart:
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] blobmsg_type(cur): 2 (BLOBMSG_TYPE_TABLE)
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] BEFORE 75e300aeec25:
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] blob_len(cur): 36
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] blobmsg_check_attr_len(cur, false, 36): 1
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] [for_each_attr] blobmsg_name(sub): core blobmsg_type(sub): 3 (BLOBMSG_TYPE_STRING)
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] [for_each_attr] blobmsg_name(sub): blobmsg_type(sub): 5 (BLOBMSG_TYPE_INT32)
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] AFTER 75e300aeec25:
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] blobmsg_len(cur): 24
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] blobmsg_check_attr_len(cur, false, 24): 1
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] [for_each_attr] blobmsg_name(sub): core blobmsg_type(sub): 3 (BLOBMSG_TYPE_STRING)
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] blob_attr *cur as JSON: { "core": "unlimited" }
>> Fri May 22 09:22:05 2020 daemon.err procd: [instance_fill_array] blobmsg_check_attr_list() failed
>>
>> As you can see, libubox fix resulted in blobmsg_check_array_len()
>> actually iterating over sub-attr-s but also failing occasionally.
>
> My observation was reversed. After 75e300aeec25 libubox uses blob_len,
> not blobmsg_len. It means that iteration over sub-attr-s in
> blobmsg_check_array_len() actually got broken. It's because
> __blobmsg_for_each_attr() macro expects *data* len to be passed to it.
Fixed in commit 5e75160f4878 ("blobmsg: fix attrs iteration in the
blobmsg_check_array_len()").
https://git.openwrt.org/?p=project/libubox.git;a=commitdiff;h=5e75160f48785464f9213c6bc8c72b9372c5318b
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list