Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Check bounds in set_option_value()

Normally it's up to the GUI to check for option's limits,
but we could receive the new value directly from the user
by teminal window. So let's check the bounds anyway.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
  • Loading branch information...
commit 8008f784150d040497ac8bd5a5153d90ea0dbde6 1 parent 3941e4b
@mcostalba authored
Showing with 21 additions and 3 deletions.
  1. +21 −3 src/ucioption.cpp
View
24 src/ucioption.cpp
@@ -293,10 +293,28 @@ void set_option_value(const string& name, const string& value) {
else if (v == "false")
v = "0";
- if (options.find(name) != options.end())
- options[name].currentValue = v;
- else
+ if (options.find(name) == options.end())
+ {
std::cout << "No such option: " << name << std::endl;
+ return;
+ }
+
+ // Normally it's up to the GUI to check for option's limits,
+ // but we could receive the new value directly from the user
+ // by teminal window. So let's check the bounds anyway.
+ Option& opt = options[name];
+
+ if (opt.type == CHECK && v != "0" && v != "1")
+ return;
+
+ else if (opt.type == SPIN)
+ {
+ int val = atoi(v.c_str());
+ if (val < opt.minValue || val > opt.maxValue)
+ return;
+ }
+
+ opt.currentValue = v;
}
Please sign in to comment.
Something went wrong with that request. Please try again.