On 23/03/2021 17:16, Petr Štetiar wrote: > Arnout Vandecappelle (Essensium/Mind) <arn...@mind.be> [2021-03-23 16:23:25]: > > Hi, > >> To maintain the linked list, an additional structure ubus_msg_buf_list >> is created. We could also have added the linked list to the ubus_msg_buf >> struct itself, but it is not relevant in the many other uses of the >> ubus_msg_buf struct so it would just complicate things. > > I've just tried to run CI pipeline[1] on this patch and got following > complaints > from clang static analyzer[2]: > > ubusd_main.c:33:3: warning: Use of memory after it is freed [unix.Malloc] > ubus_msg_list_free(ubl); > ^~~~~~~~~~~~~~~~~~~~~~~ > > ubusd_main.c:76:39: warning: Use of memory after it is freed [unix.Malloc] > written = ubus_msg_writev(sock->fd, ubl->msg, ubl->offset); > ^~~~~~~~ > > 1. https://gitlab.com/ynezz/openwrt-ubus/-/pipelines/275104805 > 2. > https://ynezz.gitlab.io/-/openwrt-ubus/-/jobs/1121145462/artifacts/build/scan/2021-03-23-154521-70-1/index.html
This is a false positive. I suspect that clang doesn't see that !list_empty() implies that the list is not empty. I'll try to rewrite using assigning to ubl in the while loop header rather than in the body. Regards, Arnout _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel