diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2015-11-09 14:03:25 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2015-11-09 14:03:25 +0100 |
commit | 36ee36734382b2aa845a435e27fa1fb834be1152 (patch) | |
tree | 2189b697b9e4ad999fba7e950507cfd49109b905 /libdaemon | |
parent | 0b5a75c9af1be5959ed946fea816aa642b5f918a (diff) | |
download | lvm2-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.c | 7 |
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; |