MdeModulePkg/RegularExpressionDxe: Miss null pointer check

Oniguruma https://github.com/kkos/oniguruma
this change is merged from oniguruma develop branch.
from commit 1db8a2726dfad0401f928cb8474bd770f07040a7.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dongao Guo <dongao.guo@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Dongao Guo 2018-10-11 14:57:02 +08:00 committed by Liming Gao
parent a5def17714
commit df8be9e50f
1 changed files with 5 additions and 0 deletions

View File

@ -1906,6 +1906,7 @@ callout_tag_entry(regex_t* reg, UChar* name, UChar* name_end,
if (r != ONIG_NORMAL) return r; if (r != ONIG_NORMAL) return r;
ext = onig_get_regex_ext(reg); ext = onig_get_regex_ext(reg);
CHECK_NULL_RETURN_MEMERR(ext);
r = callout_tag_entry_raw(ext->tag_table, name, name_end, entry_val); r = callout_tag_entry_raw(ext->tag_table, name, name_end, entry_val);
e = onig_reg_callout_list_at(reg, (int )entry_val); e = onig_reg_callout_list_at(reg, (int )entry_val);
@ -2088,6 +2089,7 @@ node_new(void)
Node* node; Node* node;
node = (Node* )xmalloc(sizeof(Node)); node = (Node* )xmalloc(sizeof(Node));
CHECK_NULL_RETURN(node);
xmemset(node, 0, sizeof(*node)); xmemset(node, 0, sizeof(*node));
#ifdef DEBUG_NODE_FREE #ifdef DEBUG_NODE_FREE
@ -6616,6 +6618,7 @@ parse_callout_of_contents(Node** np, int cterm, UChar** src, UChar* end, ScanEnv
if (r != 0) return r; if (r != 0) return r;
ext = onig_get_regex_ext(env->reg); ext = onig_get_regex_ext(env->reg);
CHECK_NULL_RETURN_MEMERR(ext);
if (IS_NULL(ext->pattern)) { if (IS_NULL(ext->pattern)) {
r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end); r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end);
if (r != ONIG_NORMAL) return r; if (r != ONIG_NORMAL) return r;
@ -6936,6 +6939,7 @@ parse_callout_of_name(Node** np, int cterm, UChar** src, UChar* end, ScanEnv* en
if (r != 0) return r; if (r != 0) return r;
ext = onig_get_regex_ext(env->reg); ext = onig_get_regex_ext(env->reg);
CHECK_NULL_RETURN_MEMERR(ext);
if (IS_NULL(ext->pattern)) { if (IS_NULL(ext->pattern)) {
r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end); r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end);
if (r != ONIG_NORMAL) return r; if (r != ONIG_NORMAL) return r;
@ -7987,6 +7991,7 @@ parse_exp(Node** np, OnigToken* tok, int term, UChar** src, UChar* end,
int ascii_mode = int ascii_mode =
IS_WORD_ASCII(env->options) && IS_WORD_ANCHOR_TYPE(tok->u.anchor) ? 1 : 0; IS_WORD_ASCII(env->options) && IS_WORD_ANCHOR_TYPE(tok->u.anchor) ? 1 : 0;
*np = onig_node_new_anchor(tok->u.anchor, ascii_mode); *np = onig_node_new_anchor(tok->u.anchor, ascii_mode);
CHECK_NULL_RETURN_MEMERR(*np);
} }
break; break;