+
+ {
+ unsigned long row_cnt = 0;
+ unsigned long i;
+
+ for (i=0; i<rrd->stat_head->rra_cnt; i++)
+ row_cnt += rrd->rra_def[i].row_cnt;
+
+ off_t correct_len = rrd_file->header_len +
+ sizeof(rrd_value_t) * row_cnt * rrd->stat_head->ds_cnt;
+
+ if (correct_len > rrd_file->file_len)
+ {
+ rrd_set_error("'%s' is too small (should be %ld bytes)",
+ file_name, (long long) correct_len);
+ goto out_nullify_head;
+ }
+ }
+