Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb3ed7b1

Browse files
boulabiargittiver
authored andcommitted
added protection against empty get_found_bp result.
1 parent1aa3fbb commitb3ed7b1

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

‎include/crow/routing.h‎

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -721,7 +721,6 @@ namespace crow // NOTE: Already documented in "crow/app.h"
721721

722722
constexprsize_t RULE_SPECIAL_REDIRECT_SLASH =1;
723723

724-
725724
/// A search tree.
726725
classTrie
727726
{
@@ -1317,7 +1316,9 @@ namespace crow // NOTE: Already documented in "crow/app.h"
13171316

13181317
ruleObject->foreach_method([&](int method) {
13191318
per_methods_[method].rules.emplace_back(ruleObject);
1320-
per_methods_[method].trie.add(rule, per_methods_[method].rules.size() -1, BP_index != INVALID_BP_ID ? blueprints[BP_index]->prefix().length() :0, BP_index);
1319+
per_methods_[method].trie.add(rule, per_methods_[method].rules.size() -1,
1320+
BP_index != INVALID_BP_ID ? blueprints[BP_index]->prefix().length() :0,
1321+
BP_index);
13211322

13221323
// directory case:
13231324
// request to '/about' url matches '/about/' rule
@@ -1528,11 +1529,12 @@ namespace crow // NOTE: Already documented in "crow/app.h"
15281529
CatchallRule&get_catch_all(const routing_handle_result& found) {
15291530
std::vector<Blueprint*> bps_found;
15301531
get_found_bp(found.blueprint_indices, blueprints_, bps_found);
1531-
for (int i = bps_found.size() -1; i >0; i--)
1532-
{
1533-
std::vector<size_t> bpi = found.blueprint_indices;
1534-
if (bps_found[i]->catchall_rule().has_handler()) {
1535-
return bps_found[i]->catchall_rule();
1532+
if (!bps_found.empty()) {
1533+
for (size_t i = bps_found.size() -1; i >0; i--)
1534+
{
1535+
if (bps_found[i]->catchall_rule().has_handler()) {
1536+
return bps_found[i]->catchall_rule();
1537+
}
15361538
}
15371539
}
15381540
return catchall_rule_;
@@ -1544,20 +1546,17 @@ namespace crow // NOTE: Already documented in "crow/app.h"
15441546

15451547
std::vector<Blueprint*> bps_found;
15461548
get_found_bp(found.blueprint_indices, blueprints_, bps_found);
1547-
for (int i = bps_found.size() -1; i >0; i--)
1548-
{
1549-
std::vector<size_t> bpi = found.blueprint_indices;
1550-
if (bps_found[i]->catchall_rule().has_handler())
1551-
{
1549+
if (!bps_found.empty()) {
1550+
for (size_t i = bps_found.size() -1; i >0; i--) {
1551+
if (bps_found[i]->catchall_rule().has_handler()) {
15521552
#ifdef CROW_ENABLE_DEBUG
1553-
returnstd::string("Redirected to Blueprint\"" + bps_found[i]->prefix() +"\" Catchall rule");
1553+
returnstd::string("Redirected to Blueprint\"" + bps_found[i]->prefix() +"\" Catchall rule");
15541554
#else
1555-
return EMPTY;
1555+
return EMPTY;
15561556
#endif
1557+
}
15571558
}
1558-
}
1559-
if (catchall_rule_.has_handler())
1560-
{
1559+
}elseif (catchall_rule_.has_handler()) {
15611560
#ifdef CROW_ENABLE_DEBUG
15621561
returnstd::string("Redirected to global Catchall rule");
15631562
#else

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp