<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>