Hi Jan,

On Thu,  7 Sep 2023 18:12:56 +0200
Jan Venekamp <j...@venekamp.net> wrote:

> Could you provided a example / test case for this behaviour?

Before finding and applying Jeff's patch I had written a small test application 
that creates a few random sections in the 'dhcp' UCI package and deletes them 
again (uci_set).
Afterwards, it iterates all packages (uci_list_configs), prints a line if there 
is a delta (ptr.p->has_delta), and calls uci_save.
Basically, there were erroneous 'has_delta' entries for all packages.
It was set up like that because, at the time, I thought the problem had to do 
with packages.

If enough sections were created and deleted, I would reliably segfault when 
iterating sections (e.g. uci_foreach_element_safe(&u_ptr.p->sections, tmp, e)).
That is how I discovered the bug.

Here's the output I had saved for a submission to this mailing list:

[root@wpj428 ~] $ /tmp/delta-test 20 # <- the amount of sections to be created 
and deleted
has delta: dhcp
has delta: dropbear
has delta: fastd
has delta: fstab
has delta: network
has delta: radius
has delta: system
has delta: ubootenv
has delta: wireless
[root@wpj428 ~] $ uci changes | grep fastd
[root@wpj428 ~] $ uci changes ubootenv
[root@wpj428 ~] $ 

I abandonded and deleted the test app and the report since, at least to me, 
Jeff's patch appears to be a valid solution.
If you want, I could recreate it. Let me know!

kind regards,
Leon

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to