This is an automated email from the ASF dual-hosted git repository.

dataroaring pushed a commit to branch branch-3.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-3.0 by this push:
     new e06e25221d4 [fix](jsonb) Avoid crashing caused by invalid path 
(#50978) (#50994)
e06e25221d4 is described below

commit e06e25221d45ce4c19d254511ef52bbf90c52ac3
Author: Jerry Hu <hushengg...@selectdb.com>
AuthorDate: Sun May 18 22:28:04 2025 +0800

    [fix](jsonb) Avoid crashing caused by invalid path (#50978) (#50994)
    
    pick #50978
---
 be/src/util/jsonb_document.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/be/src/util/jsonb_document.h b/be/src/util/jsonb_document.h
index 0e4fea77f13..fb87114f886 100644
--- a/be/src/util/jsonb_document.h
+++ b/be/src/util/jsonb_document.h
@@ -1499,6 +1499,10 @@ inline bool JsonbPath::parsePath(Stream* stream, 
JsonbPath* path) {
         // advance past the .
         stream->skip(1);
 
+        if (stream->exhausted()) {
+            return false;
+        }
+
         // $.[0]
         if (stream->peek() == BEGIN_ARRAY) {
             return parse_array(stream, path);
@@ -1523,6 +1527,10 @@ inline bool JsonbPath::parse_array(Stream* stream, 
JsonbPath* path) {
         stream->set_leg_ptr(const_cast<char*>(stream->position()));
         stream->add_leg_len();
         stream->skip(1);
+        if (stream->exhausted()) {
+            return false;
+        }
+
         if (stream->peek() == END_ARRAY) {
             std::unique_ptr<leg_info> leg(
                     new leg_info(stream->get_leg_ptr(), stream->get_leg_len(), 
0, ARRAY_CODE));


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to