diff --git a/src/rrdtool.c b/src/rrdtool.c
index 2f28329f0fbef43f17c70b3b7136a6b4f187e2b8..c795e2656502685ca353937ddda2b9defcd3a518 100644 (file)
--- a/src/rrdtool.c
+++ b/src/rrdtool.c
int status;
size_t len;
+ if (datadir != NULL)
+ {
+ size_t datadir_len = strlen (datadir) + 1;
+
+ if (datadir_len >= buffer_size)
+ return (ENOMEM);
+
+ sstrncpy (buffer, datadir, buffer_size);
+ buffer[datadir_len - 1] = '/';
+ buffer[datadir_len] = 0;
+
+ buffer += datadir_len;
+ buffer_size -= datadir_len;
+ }
+
status = FORMAT_VL (buffer, buffer_size, vl);
if (status != 0)
return (status);