1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

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.
This commit is contained in:
Zdenek Kabelac 2015-11-09 14:03:25 +01:00
parent 0b5a75c9af
commit 36ee367343

View File

@ -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;