Bounds-check path bias rate parameters.

The other remaining parameters don't really need range checks.
This commit is contained in:
Mike Perry 2013-01-30 22:21:36 -04:00 committed by Nick Mathewson
parent bce6714f99
commit 95d272f5d8

View File

@ -2649,6 +2649,37 @@ options_validate(or_options_t *old_options, or_options_t *options,
RECOMMENDED_MIN_CIRCUIT_BUILD_TIMEOUT );
}
if (options->PathBiasNoticeRate > 1.0) {
tor_asprintf(msg,
"PathBiasNoticeRate is too high. "
"It must be between 0 and 1.0");
return -1;
}
if (options->PathBiasWarnRate > 1.0) {
tor_asprintf(msg,
"PathBiasWarnRate is too high. "
"It must be between 0 and 1.0");
return -1;
}
if (options->PathBiasExtremeRate > 1.0) {
tor_asprintf(msg,
"PathBiasExtremeRate is too high. "
"It must be between 0 and 1.0");
return -1;
}
if (options->PathBiasNoticeUseRate > 1.0) {
tor_asprintf(msg,
"PathBiasNoticeUseRate is too high. "
"It must be between 0 and 1.0");
return -1;
}
if (options->PathBiasExtremeUseRate > 1.0) {
tor_asprintf(msg,
"PathBiasExtremeUseRate is too high. "
"It must be between 0 and 1.0");
return -1;
}
if (options->MaxCircuitDirtiness < MIN_MAX_CIRCUIT_DIRTINESS) {
log_warn(LD_CONFIG, "MaxCircuitDirtiness option is too short; "
"raising to %d seconds.", MIN_MAX_CIRCUIT_DIRTINESS);