Skip to content

Commit fd7709f

Browse files
author
vmordovin
committed
[library] Fix ub-sanitizer error 'applying non-zero offset to null pointer'
``` #0 0x23d0d55b in GetSchemePrefixSize(TBasicStringBuf<char, std::__y1::char_traits<char> >) /home/vmordovin/src/arcadia/fuse/arcadia/library/cpp/string_utils/url/url.cpp:111:11 #1 0x23d0ce99 in GetSchemeHostAndPort(TBasicStringBuf<char, std::__y1::char_traits<char> >, bool, bool) /home/vmordovin/src/arcadia/fuse/arcadia/library/cpp/string_utils/url/url.cpp:173:31 #2 0x23d0da8b in NUrl::SplitUrlToHostAndPath(TBasicStringBuf<char, std::__y1::char_traits<char> >) /home/vmordovin/src/arcadia/fuse/arcadia/library/cpp/string_utils/url/url.cpp:68:27 #3 0x23d0da8b in SplitUrlToHostAndPath(TBasicStringBuf<char, std::__y1::char_traits<char> >, TBasicStringBuf<char, std::__y1::char_traits<char> >&, TBasicStringBuf<char, std::__y1::char_traits<char> >&) /hom e/vmordovin/src/arcadia/fuse/arcadia/library/cpp/string_utils/url/url.cpp:201:31 #4 0x2c0d8715 in NReportSnippets::SplitGreenUrl(NSc::TValue&, TBasicStringBuf<char, std::__y1::char_traits<char> >, TBasicStringBuf<char, std::__y1::char_traits<char> >) /home/vmordovin/src/arcadia/fuse/arca dia/search/web/util/report_snippets/report_snippets.cpp:50:5 #5 0x2363d63b in (anonymous namespace)::TReportSnippetGenericContext::ProcessGrouping(TMetaGrouping&, TGroupingIndex const&, IMetaRearrangeContext::TRearrangeParams const&) /home/vmordovin/src/arcadia/fuse/a rcadia/search/web/rearrange/rep_snip_generic/generic.cpp:129:21 ... ```
1 parent 7c2636d commit fd7709f

File tree

1 file changed

+4
-1
lines changed
  • library/cpp/string_utils/url

1 file changed

+4
-1
lines changed

library/cpp/string_utils/url/url.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ TWtringBuf CutHttpPrefix(const TWtringBuf url, bool ignorehttps) noexcept {
9898
}
9999

100100
size_t GetSchemePrefixSize(const TStringBuf url) noexcept {
101+
if (url.empty()) {
102+
return 0;
103+
}
104+
101105
struct TDelim: public str_spn {
102106
inline TDelim()
103107
: str_spn("!-/:-@[-`{|}", true)
@@ -433,4 +437,3 @@ bool DoesUrlPathStartWithToken(TStringBuf url, const TStringBuf& token) noexcept
433437
const bool prefixIsToken = slashAfterPrefix || qMarkAfterPrefix || nothingAfterPrefix;
434438
return prefixIsToken;
435439
}
436-

0 commit comments

Comments
 (0)