Re: dnsmasq compile error: rfc1035.c:978:56: error: 'struct dnsmasq_daemon' has no member named 'workspacename'
John Thomson
lists at johnthomson.fastmail.com.au
Tue Sep 28 02:29:00 PDT 2021
Hi Patrick,
On Mon, 27 Sep 2021, at 20:21, Patrick Vorlicek wrote:
> make[5]: Entering directory
> '/root/openwrt/ea8500/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/dnsmasq-full/dnsmasq-2.86/src'
> arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -fno-caller-saves -fno-plt
> -fhonour-copts -Wno-error=unused-but-set-variable
> -Wno-error=unused-result -mfloat-abi=hard
> -fmacro-prefix-map=/root/openwrt/ea8500/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/dnsmasq-full/dnsmasq-2.86=dnsmasq-2.86
> -Wformat -Werror=format-security -DPIC -fpic -fstack-protector
> -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -flto
> -I/root/openwrt/ea8500/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-11.2.0_musl_eabi/usr/include
> -I/root/openwrt/ea8500/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-11.2.0_musl_eabi/include/fortify
> -I/root/openwrt/ea8500/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-11.2.0_musl_eabi/include
> -DHAVE_UBUS -DHAVE_POLL_H -DHAVE_CONNTRACK -DNO_ID -DNO_TFTP
> -DVERSION='"2.86"'
> -I/root/openwrt/ea8500/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include
> -c rfc1035.c
> rfc1035.c: In function 'report_addresses':
> rfc1035.c:978:56: error: 'struct dnsmasq_daemon' has no member named
> 'workspacename'
> 978 | if (!extract_name(header, len, &p,
> daemon->workspacename, 1, 0))
> | ^~
> rfc1035.c:980:66: error: 'struct dnsmasq_daemon' has no member named
> 'workspacename'
> 980 | if (safe_name(daemon->namebuff) &&
> safe_name(daemon->workspacename))
>
> | ^~
> rfc1035.c:981:92: error: 'struct dnsmasq_daemon' has no member named
> 'workspacename'
> 981 |
> ubus_event_bcast_connmark_allowlist_resolved(mark, daemon->namebuff,
> daemon->workspacename, attl);
>
> |
> ^~
> make[5]: ***
> [/root/openwrt/ea8500/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/dnsmasq-full/dnsmasq-2.86/Makefile:166:
> rfc1035.o] Error 1
> make[5]: Leaving directory
> '/root/openwrt/ea8500/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/dnsmasq-full/dnsmasq-2.86/src'
>
> It's a custom build of current master
> (830c2e53781ade1817b03bbb8ece6291ae34df5d) with the following dnsmasq
> config:
>
> # CONFIG_PACKAGE_dnsmasq is not set
> # CONFIG_PACKAGE_dnsmasq-dhcpv6 is not set
> CONFIG_PACKAGE_dnsmasq-full=y
> CONFIG_PACKAGE_dnsmasq_full_dhcp=y
> CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
> # CONFIG_PACKAGE_dnsmasq_full_dnssec is not set
> CONFIG_PACKAGE_dnsmasq_full_auth=y
> CONFIG_PACKAGE_dnsmasq_full_ipset=y
> CONFIG_PACKAGE_dnsmasq_full_conntrack=y
> CONFIG_PACKAGE_dnsmasq_full_noid=y
> # CONFIG_PACKAGE_dnsmasq_full_broken_rtc is not set
> # CONFIG_PACKAGE_dnsmasq_full_tftp is not set
This looks like a problem in dnsmasq, because you are building with ubus and contrack,
but without dnssec.
If this is a valid configuration combination for dnsmasq, this is a bug.
Otherwise, we will need to update the OpenWrt package so that these settings cannot occur together.
I have included dnsmasq-discuss
daemon->workspacename is guarded by HAVE_DNSSEC in src/dnsmasq.h
extern struct daemon {
…
#ifdef HAVE_DNSSEC
char *keyname; /* MAXDNAME size buffer */
char *workspacename; /* ditto */
but access to daemon->workspacename is guarded by
HAVE_CONNTRACK && HAVE_UBUS in src/rfc1035.c
#if defined(HAVE_CONNTRACK) && defined(HAVE_UBUS)
…
void report_addresses(struct dns_header *header, size_t len, u32 mark)
…
if (!extract_name(header, len, &p, daemon->workspacename, 1, 0))
Cheers,
--
John Thomson
More information about the openwrt-devel
mailing list