/home/openwrt/build_dir/target-x86_64_musl/uhttpd-2018-11-28-cdfc902a/ubus.c:146:56: error: format '%s' expects argument of type 'char *', but argument 3 has type 'void *' [-Werror=format=]
ustream_printf(cl->us, "Access-Control-Allow-Origin: %s\r\n",
~^
%p
blobmsg_data(tb[HDR_ORIGIN]));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/openwrt/build_dir/target-x86_64_musl/uhttpd-2018-11-28-cdfc902a/ubus.c:150:58: error: format '%s' expects argument of type 'char *', but argument 3 has type 'void *' [-Werror=format=]
ustream_printf(cl->us, "Access-Control-Allow-Headers: %s\r\n",
~^
%p
blobmsg_data(tb[HDR_ACCESS_CONTROL_REQUEST_HEADERS]));
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[6]: *** [CMakeFiles/uhttpd_ubus.dir/ubus.c.o] Error 1
It happens on default gcc too (7.4.0). The culprit was a change / update to libubox that validates the input to printf-like functions, to spot this kind of issues.
It was solved on the uhttpd repo and for OpenWRT on commit 3c401f45