From 36ee36734382b2aa845a435e27fa1fb834be1152 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac <zkabelac@redhat.com> Date: Mon, 9 Nov 2015 14:03:25 +0100 Subject: [PATCH] libdaemon: prohibit use of %d for 64bit numbres Do not let pass %d and print internal error when found one. Require all users to use FMTd64 - it's seriously confusing. --- libdaemon/client/config-util.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libdaemon/client/config-util.c b/libdaemon/client/config-util.c index ec5ea98d6..bbf4218f3 100644 --- a/libdaemon/client/config-util.c +++ b/libdaemon/client/config-util.c @@ -38,7 +38,12 @@ int buffer_append_vf(struct buffer *buf, va_list ap) goto fail; } keylen = strchr(next, '=') - next; - if (strstr(next, "%d") || strstr(next, FMTd64)) { + if (strstr(next, "%d")) { + /* Use of plain %d is prohibited, use FMTd64 */ + log_error(INTERNAL_ERROR "Do not use %%d and use correct 64bit form"); + goto fail; + } + if (strstr(next, FMTd64)) { value = va_arg(ap, int64_t); if (dm_asprintf(&append, "%.*s= %" PRId64 "\n", keylen, next, value) < 0) goto fail;