|
@@ -4,6 +4,7 @@ package devicemapper
|
|
|
|
|
|
/*
|
|
|
#cgo LDFLAGS: -L. -ldevmapper
|
|
|
+#define _GNU_SOURCE
|
|
|
#include <libdevmapper.h>
|
|
|
#include <linux/fs.h> // 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"
|