base-files: improve dnsmasq.time handling for dnssec#2
Conversation
|
Why should fixsystime exclude any file? Can a file be too new? |
|
dnsmasq uses the timestamp on dnsmasq.time as a decider on whether to valid dnssec time based signatures. Once system time has gone beyond dnsmasq.time, dnsmasq considers system time valid and starts validating dnssec timestamps. If system time is wrong and you validate timestamps, name resolution in essence stops. This may not be so help if it is ntpd trying to do the lookup :-) The file based solution adopted by dnsmasq used the assumption that systime would be in the 1970s on boot to then be corrected to present by ntpd. So, if sysfixtime sets the time to newer than dnsmasq.time, time would be considered valid which may have unfortunate consequences. A different solution would be to have ntpd signal dnsmasq when it has set time for real. That's not the solution I coded for :-) |
|
@kdarbyshirebryant - the dnsmasq specific file handling should not be added as exception to sysupgrade, you should handle it like that:
The I think the following should work: |
|
Thank you Jow - I shall take your advice and work on a better version - I'll be back, though it might take a while :-) |
|
@jow May I bring your attention to https://patchwork.ozlabs.org/patch/521344/ which discussed (at great length!) a variety to methods for finding the latest file (excluding dnsmasq.time) I'm reminded that the original reason for changing from the original 'find/exec' combination (indeed my original patch used a '!' -path /etc/dnsmasq.time as per your suggestion above) was to reduce CPU usage. Justin explores this a little more in his post in the above mentioned thread. I'm inclined to use his improved option: time find /etc -type f '!' -path /etc/dnsmasq.time -exec date -r {} +%s ; | sort -nr | head -n1 What do you think? |
|
I'd say take the faster find command then. |
|
Hopefully the latest commits are more what you're looking for :-) |
dnsmasq maintains dnsmasq.time across reboots and uses it as a means of determining if current time is good enough to validate dnssec time stamps. By including /etc/dnsmasq.time as a time source for sysfixtime, the mechanism was effectively defeated because time was set to the last time that dnsmasq considered current even though that time is in the past. Since that time is out of date, dns(sec) resolution would fail thus defeating any ntp based mechanisms for setting the clock correctly. In theory the process is defeated by any files in /etc that are newer than /etc/dnsmasq.time however dnsmasq now updates the file's timestamp on process TERM so hopefully /etc/dnsmasq.time is the latest file timestamp in /etc as part of LEDE shutdown/reboot. Either way, including /etc/dnsmasq.time as a time source for sysfixtime is not helpful.
conditionally save dnsmasq.time across sysupgrade dnsmasq uses /etc/dnsmasq.time as record of the last known good system time to aid its validation of dnssec timestamps. dnsmasq updates the timestamp on process start/stop once it considers the system time as valid. The timestamp file should be preserved across system upgrade but should not be included as part of normal configuration backups to prevent restores corrupting the current timestamp.
|
Pulled into my staging tree: https://git.lede-project.org/?p=lede/jow/staging.git;a=commit;h=382779e009af7c1c688fbd98adf71fb19ce66254 |
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded port enabling for RGMII mode as it was already enabled at switch init. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded part RGMII as part it was already enabled at setup. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded part RGMII as part it was already enabled at setup. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded part RGMII as part it was already enabled at setup. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded part RGMII as part it was already enabled at setup. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded part RGMII as part it was already enabled at setup. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
Driver supports 2 chip versions: RTL8367RB, RTL8367R-VB. Each of them has 2 external ports. RTL8367RB has ports indexed as #1,lede-project#2 (PHY lede-project#6, lede-project#7). RTL8367R-VB has ports indexed as #0,#1 (PHY lede-project#5,lede-project#6). Map ports so that extif0 complies to external port 0 or 1 depending on chip ID. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded part RGMII as part it was already enabled at setup. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
Driver supports 2 chip versions: RTL8367RB, RTL8367R-VB. Each of them has 2 external ports. RTL8367RB has ports indexed as #1,lede-project#2 (PHY lede-project#6, lede-project#7). RTL8367R-VB has ports indexed as #0,#1 (PHY lede-project#5,lede-project#6). Map ports so that extif0 complies to external port 0 or 1 depending on chip ID. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode setup for external port lede-project#2 Remove unneeded part RGMII as part it was already enabled at setup. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode support for external port lede-project#2 Rewrite method according API, fix bit with bypass line rate. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
Driver supports 2 chip versions: RTL8367RB, RTL8367R-VB. Each of them has 2 external ports. RTL8367RB has ports indexed as #1,lede-project#2 (PHY lede-project#6, lede-project#7). RTL8367R-VB has ports indexed as #0,#1 (PHY lede-project#5,lede-project#6). Map ports so that extif0 complies to external port 0 or 1 depending on chip ID. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode support for external port lede-project#2 Rewrite method according API, fix bit with bypass line rate. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port #1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
In net/phy/swconfig.c driver, in swconfig_get_dev() we attemp to take
dev->sw_mutex with a spin_lock held (that's taken in swconfig_lock()
function). AFAIK this can cause deadlocks, and it does cause the kernel
to complain [0].
I couldn't spot any interrupt, neither any tasklet, in the driver code
that could be racy wrt the genl_ops (and I would expect spinlock_irqsave
or spinlock_bh to be used in geln_ops funcs in those cases); also, after
a overview of external users of exported functions (a bunch of phy
drivers), I couldn't find any usage that justifies spinlock usage..
This patch convert the spinlock into a regular mutex.
[0]
[ 11.671567] BUG: sleeping function called from invalid context at
kernel/locking/mutex.c:620
[ 11.678696] in_atomic(): 1, irqs_disabled(): 0, pid: 711, name: swconfig
[ 11.685376] 3 locks held by swconfig/711:
[ 11.689384] #0: (cb_lock){......}, at: [<80453a34>] genl_rcv+0x20/0x48
[ 11.696054] lede-project#1: (genl_mutex){......}, at: [<80453aac>]
genl_rcv_msg+0x50/0x364
[ 11.703444] lede-project#2: (swdevs_lock){......}, at: [<8039e48c>]
swconfig_get_dev.isra.6+0x2c/0xd0
[ 11.711816] CPU: 1 PID: 711 Comm: swconfig Not tainted 4.9.31 #0
[ 11.717739] Stack : 00000000 00000000 80e6c56a 00000034 80573bb4
00000000 00000000 807a0000
[ 11.726084] 87e1a7ec 80795887 806f38bc 00000001 000002c7
809041fc 00000000 00000000
[ 11.734439] 00000000 8007da38 00000000 00000000 00000000
8007da38 806faf04 874d1aec
[ 11.742795] 00000002 800be57c 806f97e4 874d1afc 00000000
80790000 00000000 874d1a00
[ 11.751151] 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
[ 11.759507] ...
[ 11.761946] Call Trace:
[ 11.764400] [<80010b38>] show_stack+0x50/0x84
[ 11.768788] [<802c0374>] dump_stack+0xd4/0x110
[ 11.773200] [<800569b0>] ___might_sleep+0xfc/0x11c
[ 11.778011] [<80556058>] mutex_lock_nested+0x4c/0x454
[ 11.783050] [<8039e4d0>] swconfig_get_dev.isra.6+0x70/0xd0
[ 11.788520] [<8039e56c>] swconfig_list_attrs+0x3c/0x230
[ 11.793751] [<80453d10>] genl_rcv_msg+0x2b4/0x364
[ 11.798449] [<80452db4>] netlink_rcv_skb+0x7c/0xf8
[ 11.803228] [<80453a44>] genl_rcv+0x30/0x48
[ 11.807415] [<804524d0>] netlink_unicast+0x190/0x2c4
[ 11.812367] [<80452b54>] netlink_sendmsg+0x418/0x44c
[ 11.817356] [<803ff4ac>] sock_sendmsg+0x18/0x30
[ 11.821864] [<80400948>] ___sys_sendmsg+0x1bc/0x25c
[ 11.826731] [<804018a8>] __sys_sendmsg+0x4c/0x80
[ 11.831353] [<8001ad38>] syscall_common+0x34/0x58
[1]
http://elixir.free-electrons.com/linux/latest/source/net/netlink/genetlink.c#L30
http://elixir.free-electrons.com/linux/latest/source/net/netlink/genetlink.c#L610
Signed-off-by: Andrea Merello <[email protected]>
Driver supports 2 chip versions: RTL8367RB, RTL8367R-VB. Each of them has 2 external ports. RTL8367RB has ports indexed as lede-project#1,lede-project#2 (PHY lede-project#6, lede-project#7). RTL8367R-VB has ports indexed as #0,lede-project#1 (PHY lede-project#5,lede-project#6). Map ports so that extif0 complies to external port 0 or 1 depending on chip ID. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode support for external port lede-project#2 Rewrite method according API, fix bit with bypass line rate. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port lede-project#1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
Changes: 89d1b80 xt_condition: namespace support #2 c839e87 xt_geoip: check for allocation overflow a587f95 compat_xtables: use more accurate printf format for NIPQUAD 1874fcd xt_DNETMAP: fix a buffer overflow 21ea7b7 xt_LOGMARK: resolve new gcc7 warnings ee8da2b build: support for Linux 4.12 19a4359 xt_condition: add support for namespaces 1b37966 xt_psd: resolve compiler warning Tested on cns3xxx Signed-off-by: Koen Vandeputte <[email protected]>
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
Driver supports 2 chip versions: RTL8367RB, RTL8367R-VB. Each of them has 2 external ports. RTL8367RB has ports indexed as lede-project#1,lede-project#2 (PHY lede-project#6, lede-project#7). RTL8367R-VB has ports indexed as #0,lede-project#1 (PHY lede-project#5,lede-project#6). Map ports so that extif0 complies to external port 0 or 1 depending on chip ID. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Add register and masks for external port lede-project#2 Add RGMII mode support for external port lede-project#2 Rewrite method according API, fix bit with bypass line rate. Signed-off-by: Vitaly Chekryzhev <[email protected]>
Remove unneeded cpu port property, update external interface init according to mapped ports for RTL8267RB: ext port lede-project#1 = extif0 ext port lede-project#2 = extif1 Signed-off-by: Vitaly Chekryzhev <[email protected]>
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 #1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 #2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
Changes: 89d1b80 xt_condition: namespace support lede-project#2 c839e87 xt_geoip: check for allocation overflow a587f95 compat_xtables: use more accurate printf format for NIPQUAD 1874fcd xt_DNETMAP: fix a buffer overflow 21ea7b7 xt_LOGMARK: resolve new gcc7 warnings ee8da2b build: support for Linux 4.12 19a4359 xt_condition: add support for namespaces 1b37966 xt_psd: resolve compiler warning Tested on cns3xxx Signed-off-by: Koen Vandeputte <[email protected]>
#0 0x77fceba4 in memset () from /lib/ld-musl-mips-sf.so.1 ptpt52#1 0x00406fc9 in answer_request (header=header@entry=0x52c440, limit=<optimized out>, qlen=qlen@entry=690, local_addr=..., local_addr@entry=..., local_netmask=local_netmask@entry=..., now=now@entry=1500609066, ad_reqd=ad_reqd@entry=1, do_bit=do_bit@entry=0, have_pseudoheader=0) at rfc1035.c:1228 ptpt52#2 0x0040e7e9 in receive_query (listen=listen@entry=0x52dee0, now=now@entry=1500609066) at forward.c:1433 lede-project#3 0x00410681 in check_dns_listeners (now=now@entry=1500609066) at dnsmasq.c:1565 lede-project#4 0x00404269 in main (argc=<optimized out>, argv=<optimized out>) at dnsmasq.c:1044
dnsmasq uses dnsmasq.time to validate if the system clock is current or not. This process is particularly important when dnsmasq's 'dnssec-check-unsigned' option is enabled.