Nobody needs more than 2^30 snapshots. More importantly, values
larger than 32 for --num_intervals cause an integer overflow in
desired_number_of_snapshots() because the number of snapshots in
interval zero does not fit in an unsigned int in this case.
This patch adds a test to check_config() that rejects values larger
than 30 for the --num_intervals option.
Many thanks to Klaus Kopec for pointing out this bug.
return -E_INVALID_NUMBER;
}
DSS_DEBUG_LOG(("unit interval: %i day(s)\n", conf.unit_interval_arg));
- if (conf.num_intervals_arg <= 0) {
- DSS_ERROR_LOG(("bad number of intervals %i\n", conf.num_intervals_arg));
+ if (conf.num_intervals_arg <= 0 || conf.num_intervals_arg > 30) {
+ DSS_ERROR_LOG(("bad number of intervals: %i\n",
+ conf.num_intervals_arg));
return -E_INVALID_NUMBER;
}
DSS_DEBUG_LOG(("number of intervals: %i\n", conf.num_intervals_arg));