From 9421df98fb3cdf9564023f887f8aeb7d05514623 Mon Sep 17 00:00:00 2001 From: Aleksa Sarai Date: Wed, 28 Jun 2017 01:44:31 +1000 Subject: [PATCH] devicemapper: remove 256 character limit of libdm logs This limit is unecessary and can lead to the truncation of long libdm logs (which is quite annoying). Fixes: b440ec013 ("device-mapper: Move all devicemapper spew to log through utils.Debugf().") Signed-off-by: Aleksa Sarai Upstream-commit: 63328c6882c3d1f54c66499ef9963adfbf1883f0 Component: engine --- .../engine/pkg/devicemapper/devmapper_wrapper.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/components/engine/pkg/devicemapper/devmapper_wrapper.go b/components/engine/pkg/devicemapper/devmapper_wrapper.go index 4f270fba0b..cdd9db95ff 100644 --- a/components/engine/pkg/devicemapper/devmapper_wrapper.go +++ b/components/engine/pkg/devicemapper/devmapper_wrapper.go @@ -4,6 +4,7 @@ package devicemapper /* #cgo LDFLAGS: -L. -ldevmapper +#define _GNU_SOURCE #include #include // FIXME: present only for BLKGETSIZE64, maybe we can remove it? @@ -12,19 +13,20 @@ extern void DevmapperLogCallback(int level, char *file, int line, int dm_errno_o static void log_cb(int level, const char *file, int line, int dm_errno_or_class, const char *f, ...) { - char buffer[256]; - va_list ap; + char *buffer = NULL; + va_list ap; - va_start(ap, f); - vsnprintf(buffer, 256, f, ap); - va_end(ap); + va_start(ap, f); + vasprintf(&buffer, f, ap); + va_end(ap); - DevmapperLogCallback(level, (char *)file, line, dm_errno_or_class, buffer); + DevmapperLogCallback(level, (char *)file, line, dm_errno_or_class, buffer); + free(buffer); } static void log_with_errno_init() { - dm_log_with_errno_init(log_cb); + dm_log_with_errno_init(log_cb); } */ import "C"