diff --git a/src/rrd_create.c b/src/rrd_create.c
index 50e26652024194c19887c20fe33a2963220d1269..ff943f5a81e4f9ecbea721bf35a74d407b475299 100644 (file)
--- a/src/rrd_create.c
+++ b/src/rrd_create.c
/*****************************************************************************
- * RRDtool 1.4.7 Copyright by Tobi Oetiker, 1997-2012
+ * RRDtool 1.4.8 Copyright by Tobi Oetiker, 1997-2013
*****************************************************************************
* rrd_create.c creates new rrds
*****************************************************************************/
#include "rrd_tool.h"
#include "rrd_rpncalc.h"
#include "rrd_hw.h"
+#include "rrd_client.h"
+#include "../rrd_config.h"
#include "rrd_is_thread_safe.h"
static int opt_no_overwrite = 0;
row_cnt = atoi(token);
if (row_cnt <= 0)
rrd_set_error("Invalid row count: %i", row_cnt);
+#if SIZEOF_TIME_T == 4
+ if ((long long) pdp_step * rrd.rra_def[rrd.stat_head->rra_cnt].pdp_cnt * row_cnt > 4294967296){
+ /* database timespan > 2**32, would overflow time_t */
+ rrd_set_error("The time spanned by the database is too large: must be <= 4294967296 seconds");
+ }
+#endif
rrd.rra_def[rrd.stat_head->rra_cnt].row_cnt = row_cnt;
break;
}