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