summaryrefslogtreecommitdiff
path: root/libdaemon
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-11-09 14:03:25 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2015-11-09 14:03:25 +0100
commit36ee36734382b2aa845a435e27fa1fb834be1152 (patch)
tree2189b697b9e4ad999fba7e950507cfd49109b905 /libdaemon
parent0b5a75c9af1be5959ed946fea816aa642b5f918a (diff)
downloadlvm2-36ee36734382b2aa845a435e27fa1fb834be1152.tar.gz
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.
Diffstat (limited to 'libdaemon')
-rw-r--r--libdaemon/client/config-util.c7
1 files changed, 6 insertions, 1 deletions
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;