aboutsummaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
authorswarmer <swarmer@yandex-team.com>2024-12-12 03:10:49 +0300
committerswarmer <swarmer@yandex-team.com>2024-12-12 03:24:34 +0300
commit8c927ddf70e6d1b9c9b5234bfab421da9fd79ac7 (patch)
treec2aa80e3046e1e13adbf43fdbcc0260ba466cc6d /library
parent133c310969aaa56dfc7fd4ab6a9c17f62dab1fce (diff)
downloadydb-8c927ddf70e6d1b9c9b5234bfab421da9fd79ac7.tar.gz
TCgiParameters: add lifetimebound check
commit_hash:d483051ff24331bcda69d8afa1413158c9e01925
Diffstat (limited to 'library')
-rw-r--r--library/cpp/cgiparam/cgiparam.cpp4
-rw-r--r--library/cpp/cgiparam/cgiparam.h14
2 files changed, 9 insertions, 9 deletions
diff --git a/library/cpp/cgiparam/cgiparam.cpp b/library/cpp/cgiparam/cgiparam.cpp
index 25d53b0a92..397e23407f 100644
--- a/library/cpp/cgiparam/cgiparam.cpp
+++ b/library/cpp/cgiparam/cgiparam.cpp
@@ -11,7 +11,7 @@ TCgiParameters::TCgiParameters(std::initializer_list<std::pair<TString, TString>
}
}
-const TString& TCgiParameters::Get(const TStringBuf name, size_t numOfValue) const noexcept {
+const TString& TCgiParameters::Get(const TStringBuf name, size_t numOfValue) const noexcept Y_LIFETIME_BOUND {
const auto it = Find(name, numOfValue);
return end() == it ? Default<TString>() : it->second;
@@ -221,7 +221,7 @@ TString TCgiParameters::QuotedPrint(const char* safe) const {
return res;
}
-TCgiParameters::const_iterator TCgiParameters::Find(const TStringBuf name, size_t pos) const noexcept {
+TCgiParameters::const_iterator TCgiParameters::Find(const TStringBuf name, size_t pos) const noexcept Y_LIFETIME_BOUND {
const auto pair = equal_range(name);
for (auto it = pair.first; it != pair.second; ++it, --pos) {
diff --git a/library/cpp/cgiparam/cgiparam.h b/library/cpp/cgiparam/cgiparam.h
index df7116510f..465940be67 100644
--- a/library/cpp/cgiparam/cgiparam.h
+++ b/library/cpp/cgiparam/cgiparam.h
@@ -61,7 +61,7 @@ public:
}
Y_PURE_FUNCTION
- const_iterator Find(const TStringBuf name, size_t numOfValue = 0) const noexcept;
+ const_iterator Find(const TStringBuf name, size_t numOfValue = 0) const noexcept Y_LIFETIME_BOUND;
Y_PURE_FUNCTION
bool Has(const TStringBuf name, const TStringBuf value) const noexcept;
@@ -76,7 +76,7 @@ public:
* @note The returned value is CGI-unescaped.
*/
Y_PURE_FUNCTION
- const TString& Get(const TStringBuf name, size_t numOfValue = 0) const noexcept;
+ const TString& Get(const TStringBuf name, size_t numOfValue = 0) const noexcept Y_LIFETIME_BOUND;
void InsertEscaped(const TStringBuf name, const TStringBuf value);
@@ -116,24 +116,24 @@ public:
bool Erase(const TStringBuf name, const TStringBuf val);
bool ErasePattern(const TStringBuf name, const TStringBuf pat);
- inline const char* FormField(const TStringBuf name, size_t numOfValue = 0) const {
+ inline const char* FormField(const TStringBuf name, size_t numOfValue = 0) const Y_LIFETIME_BOUND {
const_iterator it = Find(name, numOfValue);
if (it == end()) {
return nullptr;
}
- return it->second.data();
+ return it->second.c_str();
}
- inline TStringBuf FormFieldBuf(const TStringBuf name, size_t numOfValue = 0) const {
+ inline TStringBuf FormFieldBuf(const TStringBuf name, size_t numOfValue = 0) const Y_LIFETIME_BOUND {
const_iterator it = Find(name, numOfValue);
if (it == end()) {
- return nullptr;
+ return TStringBuf{};
}
- return it->second.data();
+ return it->second;
}
};