From: Ilya Dryomov Date: Fri, 12 Aug 2022 09:10:45 +0000 (+0200) Subject: rbd: remove incorrect use of std::includes() X-Git-Tag: v18.0.0~274^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=1483e2a20237ad65fa3188b910e4e19f3ace9030;p=ceph.git rbd: remove incorrect use of std::includes() - std::includes() requires sorted ranges but command specs aren't sorted - std::includes() purpose is to check whether the second range is a subsequence of the first range but here the size of the second range is always equal to the size of the first range, which means that, had the ranges been sorted, std::includes() would have checked straight equality Signed-off-by: Ilya Dryomov --- diff --git a/src/tools/rbd/Shell.cc b/src/tools/rbd/Shell.cc index 2095682654430..ab1d203311e9f 100644 --- a/src/tools/rbd/Shell.cc +++ b/src/tools/rbd/Shell.cc @@ -310,10 +310,9 @@ Shell::Action *Shell::find_action(const CommandSpec &command_spec, for (Action *action : actions) { if (action->command_spec.size() <= command_spec.size()) { - if (std::includes(action->command_spec.begin(), - action->command_spec.end(), - command_spec.begin(), - command_spec.begin() + action->command_spec.size())) { + if (std::equal(action->command_spec.begin(), + action->command_spec.end(), + command_spec.begin())) { if (matching_spec != NULL) { *matching_spec = &action->command_spec; } @@ -323,11 +322,9 @@ Shell::Action *Shell::find_action(const CommandSpec &command_spec, } if (!action->alias_command_spec.empty() && action->alias_command_spec.size() <= command_spec.size()) { - if (std::includes(action->alias_command_spec.begin(), - action->alias_command_spec.end(), - command_spec.begin(), - command_spec.begin() + - action->alias_command_spec.size())) { + if (std::equal(action->alias_command_spec.begin(), + action->alias_command_spec.end(), + command_spec.begin())) { if (matching_spec != NULL) { *matching_spec = &action->alias_command_spec; }