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;