From 11c17f830eb461ee813030188a464429c92639f6 Mon Sep 17 00:00:00 2001 From: Monk-Liu <1152761042@qq.com> Date: Thu, 24 Mar 2022 23:03:34 +0800 Subject: [PATCH] :In parser_node.c, count_child and merge_child will set ret to -4013, if there wasnt enough memory. --- src/sql/parser/parse_node.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/sql/parser/parse_node.c b/src/sql/parser/parse_node.c index 7e20641c31..e1df550974 100644 --- a/src/sql/parser/parse_node.c +++ b/src/sql/parser/parse_node.c @@ -120,16 +120,16 @@ int count_child(ParseNode* root, void* malloc_pool, int* count) } else if (NULL == root) { *count = 0; } else if (NULL == (stack_top = new_link_node(malloc_pool))) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR failed to malloc memory\n"); } else { *count = 0; stack_top->val_ = root; do { - ParseNode* tree = NULL; - if (NULL == stack_top || NULL == (tree = (ParseNode*)stack_top->val_)) { - ret = 1; + ParseNode *tree = NULL; + if (NULL == stack_top || NULL == (tree = (ParseNode *)stack_top->val_)) { + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR invalid null argument\n"); } else { stack_top = stack_top->next_; @@ -142,7 +142,7 @@ int count_child(ParseNode* root, void* malloc_pool, int* count) // do nothing } else { if (NULL == tree->children_) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR invalid null children\n"); } ParserLinkNode* tmp_node = NULL; @@ -151,7 +151,7 @@ int count_child(ParseNode* root, void* malloc_pool, int* count) if (NULL == child) { // do nothing } else if (NULL == (tmp_node = new_link_node(malloc_pool))) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR failed to allocate memory\n"); } else { tmp_node->val_ = child; @@ -171,20 +171,20 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int* int ret = 0; ParserLinkNode* stack_top = NULL; if (OB_UNLIKELY(NULL == node || NULL == index)) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR node%p or index:%p is NULL\n", node, index); } else if (NULL == source_tree) { // do nothing } else if (NULL == (stack_top = new_link_node(malloc_pool))) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR failed to malloc memory\n"); } else { stack_top->val_ = source_tree; do { - ParseNode* tree = NULL; - if (NULL == stack_top || NULL == (tree = (ParseNode*)stack_top->val_)) { - ret = 1; + ParseNode *tree = NULL; + if (NULL == stack_top || NULL == (tree = (ParseNode *)stack_top->val_)) { + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR invalid null argument\n"); } else { // pop stack @@ -194,11 +194,11 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int* // do nothing } else if (T_LINK_NODE != tree->type_) { if (OB_UNLIKELY(*index < 0 || *index >= node->num_child_)) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf( stderr, "ERROR invalid index: %d, num_child:%d\n tree: %d", *index, node->num_child_, tree->type_); } else if (NULL == node->children_) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR invalid null children pointer\n"); } else { node->children_[*index] = tree; @@ -207,7 +207,7 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int* } else if (tree->num_child_ <= 0) { // do nothing } else if (NULL == tree->children_) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR invalid children pointer\n"); } else { ParserLinkNode* tmp_node = NULL; @@ -215,7 +215,7 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int* if (NULL == tree->children_[i]) { // do nothing } else if (NULL == (tmp_node = new_link_node(malloc_pool))) { - ret = 1; + ret = OB_PARSER_ERR_NO_MEMORY; (void)fprintf(stderr, "ERROR failed to malloc memory\n"); } else { // push stack