<p dir="ltr">AFAIK Clang and GCC both support it. Any other relevant compilers?</p>
<br><div class="gmail_quote"><div dir="ltr">On Tue, Jun 27, 2017, 15:40 Simon Kelley <<a href="mailto:simon@thekelleys.org.uk">simon@thekelleys.org.uk</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Patch applied, with the exception of the gcc-specific __attribute__ stuff.<br>
<br>
<br>
Cheers,<br>
<br>
Simon.<br>
<br>
On 27/06/17 00:37, Rosen Penev wrote:<br>
> ---<br>
> contrib/lease-tools/dhcp_lease_time.c | 8 ++++----<br>
> src/auth.c | 6 +++---<br>
> src/cache.c | 2 +-<br>
> src/dnsmasq.h | 3 +++<br>
> src/lease.c | 1 +<br>
> src/option.c | 2 +-<br>
> src/tftp.c | 2 +-<br>
> src/util.c | 8 ++++----<br>
> 8 files changed, 18 insertions(+), 14 deletions(-)<br>
><br>
> diff --git a/contrib/lease-tools/dhcp_lease_time.c b/contrib/lease-tools/dhcp_lease_time.c<br>
> index fc00ff1..f9d7a85 100644<br>
> --- a/contrib/lease-tools/dhcp_lease_time.c<br>
> +++ b/contrib/lease-tools/dhcp_lease_time.c<br>
> @@ -206,13 +206,13 @@ int main(int argc, char **argv)<br>
> {<br>
> unsigned int x;<br>
> if ((x = t/86400))<br>
> - printf("%dd", x);<br>
> + printf("%ud", x);<br>
> if ((x = (t/3600)%24))<br>
> - printf("%dh", x);<br>
> + printf("%uh", x);<br>
> if ((x = (t/60)%60))<br>
> - printf("%dm", x);<br>
> + printf("%um", x);<br>
> if ((x = t%60))<br>
> - printf("%ds", x);<br>
> + printf("%us", x);<br>
> }<br>
> return 0;<br>
> }<br>
> diff --git a/src/auth.c b/src/auth.c<br>
> index 4489eac..2c24e16 100644<br>
> --- a/src/auth.c<br>
> +++ b/src/auth.c<br>
> @@ -597,12 +597,12 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n<br>
> char *p = name;<br>
><br>
> if (subnet->prefixlen >= 24)<br>
> - p += sprintf(p, "%d.", a & 0xff);<br>
> + p += sprintf(p, "%u.", a & 0xff);<br>
> a = a >> 8;<br>
> if (subnet->prefixlen >= 16 )<br>
> - p += sprintf(p, "%d.", a & 0xff);<br>
> + p += sprintf(p, "%u.", a & 0xff);<br>
> a = a >> 8;<br>
> - p += sprintf(p, "%d.in-addr.arpa", a & 0xff);<br>
> + p += sprintf(p, "%u.in-addr.arpa", a & 0xff);<br>
><br>
> }<br>
> #ifdef HAVE_IPV6<br>
> diff --git a/src/cache.c b/src/cache.c<br>
> index bf585fe..a719d95 100644<br>
> --- a/src/cache.c<br>
> +++ b/src/cache.c<br>
> @@ -1511,7 +1511,7 @@ void dump_cache(time_t now)<br>
> /* ctime includes trailing \n - eat it */<br>
> *(p-1) = 0;<br>
> #endif<br>
> - my_syslog(LOG_INFO, daemon->namebuff);<br>
> + my_syslog(LOG_INFO, "%s", daemon->namebuff);<br>
> }<br>
> }<br>
> }<br>
> diff --git a/src/dnsmasq.h b/src/dnsmasq.h<br>
> index 84083cc..44e26c7 100644<br>
> --- a/src/dnsmasq.h<br>
> +++ b/src/dnsmasq.h<br>
> @@ -1212,7 +1212,10 @@ int wildcard_matchn(const char* wildcard, const char* match, int num);<br>
> void die(char *message, char *arg1, int exit_code);<br>
> int log_start(struct passwd *ent_pw, int errfd);<br>
> int log_reopen(char *log_file);<br>
> +<br>
> +__attribute__ ((format (printf, 2, 3)))<br>
> void my_syslog(int priority, const char *format, ...);<br>
> +<br>
> void set_log_writer(void);<br>
> void check_log_writer(int force);<br>
> void flush_log(void);<br>
> diff --git a/src/lease.c b/src/lease.c<br>
> index 634372d..1970ba9 100644<br>
> --- a/src/lease.c<br>
> +++ b/src/lease.c<br>
> @@ -230,6 +230,7 @@ void lease_update_from_configs(void)<br>
> lease_set_hostname(lease, name, 1, get_domain(lease->addr), NULL); /* updates auth flag only */<br>
> }<br>
><br>
> +__attribute__ ((format (printf, 2, 3)))<br>
> static void ourprintf(int *errp, char *format, ...)<br>
> {<br>
> va_list ap;<br>
> diff --git a/src/option.c b/src/option.c<br>
> index 78ad81e..6a14c4d 100644<br>
> --- a/src/option.c<br>
> +++ b/src/option.c<br>
> @@ -882,7 +882,7 @@ static struct server *add_rev4(struct in_addr addr, int msize)<br>
> switch (msize)<br>
> {<br>
> case 32:<br>
> - p += sprintf(p, "%d.", a & 0xff);<br>
> + p += sprintf(p, "%u.", a & 0xff);<br>
> /* fall through */<br>
> case 24:<br>
> p += sprintf(p, "%d.", (a >> 8) & 0xff);<br>
> diff --git a/src/tftp.c b/src/tftp.c<br>
> index 8b27c7b..131e6de 100644<br>
> --- a/src/tftp.c<br>
> +++ b/src/tftp.c<br>
> @@ -734,7 +734,7 @@ static ssize_t get_block(char *packet, struct tftp_transfer *transfer)<br>
> if (transfer->opt_blocksize)<br>
> {<br>
> p += (sprintf(p, "blksize") + 1);<br>
> - p += (sprintf(p, "%d", transfer->blocksize) + 1);<br>
> + p += (sprintf(p, "%u", transfer->blocksize) + 1);<br>
> }<br>
> if (transfer->opt_transize)<br>
> {<br>
> diff --git a/src/util.c b/src/util.c<br>
> index 66128a9..bb6dba3 100644<br>
> --- a/src/util.c<br>
> +++ b/src/util.c<br>
> @@ -448,13 +448,13 @@ void prettyprint_time(char *buf, unsigned int t)<br>
> {<br>
> unsigned int x, p = 0;<br>
> if ((x = t/86400))<br>
> - p += sprintf(&buf[p], "%dd", x);<br>
> + p += sprintf(&buf[p], "%ud", x);<br>
> if ((x = (t/3600)%24))<br>
> - p += sprintf(&buf[p], "%dh", x);<br>
> + p += sprintf(&buf[p], "%uh", x);<br>
> if ((x = (t/60)%60))<br>
> - p += sprintf(&buf[p], "%dm", x);<br>
> + p += sprintf(&buf[p], "%um", x);<br>
> if ((x = t%60))<br>
> - p += sprintf(&buf[p], "%ds", x);<br>
> + p += sprintf(&buf[p], "%us", x);<br>
> }<br>
> }<br>
><br>
><br>
<br>
<br>
_______________________________________________<br>
Dnsmasq-discuss mailing list<br>
<a href="mailto:Dnsmasq-discuss@lists.thekelleys.org.uk" target="_blank">Dnsmasq-discuss@lists.thekelleys.org.uk</a><br>
<a href="http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss" rel="noreferrer" target="_blank">http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss</a><br>
</blockquote></div>