summaryrefslogtreecommitdiffhomepage
path: root/plugins/weblog/weblog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/weblog/weblog.cpp')
-rw-r--r--plugins/weblog/weblog.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/weblog/weblog.cpp b/plugins/weblog/weblog.cpp
index 1e1b6b2..a64ee1b 100644
--- a/plugins/weblog/weblog.cpp
+++ b/plugins/weblog/weblog.cpp
@@ -244,6 +244,9 @@ namespace {
size_t page)
{
try {
+ if (page > std::numeric_limits<int>::max())
+ throw std::runtime_error("Bad page index: "s + std::to_string(page));
+
HtmlPage htmlPage{GetRequestParam, "<h1>"s + GetRequestParam("WEBLOG_NAME") + "</h1>"s};
fs::path link{ GetRequestParam("plugin_path")};
@@ -422,7 +425,11 @@ std::string weblog_plugin::generate_page(
size_t page {0};
auto it {query.find("page")};
if (it != query.end()) {
- page = stoul(it->second);
+ try {
+ page = stoul(it->second);
+ } catch(...) {
+ // ignore: keep default 0
+ }
}
if (is_index_page(rel_target))