From: Fletcher T. Penney Date: Tue, 14 Mar 2017 14:24:50 +0000 (-0400) Subject: FIXED: Fix null dereference error in CriticMarkup substitution X-Git-Tag: 6.0.0-rc1^2~27 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c6748af30b85b06ba579c8179e4efb8723349ad2;p=multimarkdown FIXED: Fix null dereference error in CriticMarkup substitution --- diff --git a/Sources/libMultiMarkdown/html.c b/Sources/libMultiMarkdown/html.c index c6bf025..1e54f6c 100644 --- a/Sources/libMultiMarkdown/html.c +++ b/Sources/libMultiMarkdown/html.c @@ -1353,6 +1353,7 @@ void mmd_export_token_html(DString * out, const char * source, token * t, scratc break; case PAIR_CRITIC_SUB_DEL: if ((scratch->extensions & EXT_CRITIC) && + (t->next) && (t->next->type == PAIR_CRITIC_SUB_ADD)) { t->child->type = TEXT_EMPTY; t->child->mate->type = TEXT_EMPTY; @@ -1371,6 +1372,7 @@ void mmd_export_token_html(DString * out, const char * source, token * t, scratc break; case PAIR_CRITIC_SUB_ADD: if ((scratch->extensions & EXT_CRITIC) && + (t->prev) && (t->prev->type == PAIR_CRITIC_SUB_DEL)) { t->child->type = TEXT_EMPTY; t->child->mate->type = TEXT_EMPTY; diff --git a/Sources/libMultiMarkdown/latex.c b/Sources/libMultiMarkdown/latex.c index 617f064..0a287b0 100644 --- a/Sources/libMultiMarkdown/latex.c +++ b/Sources/libMultiMarkdown/latex.c @@ -1345,6 +1345,7 @@ void mmd_export_token_latex(DString * out, const char * source, token * t, scrat break; case PAIR_CRITIC_SUB_DEL: if ((scratch->extensions & EXT_CRITIC) && + (t->next) && (t->next->type == PAIR_CRITIC_SUB_ADD)) { t->child->type = TEXT_EMPTY; t->child->mate->type = TEXT_EMPTY; @@ -1363,6 +1364,7 @@ void mmd_export_token_latex(DString * out, const char * source, token * t, scrat break; case PAIR_CRITIC_SUB_ADD: if ((scratch->extensions & EXT_CRITIC) && + (t->prev) && (t->prev->type == PAIR_CRITIC_SUB_DEL)) { t->child->type = TEXT_EMPTY; t->child->mate->type = TEXT_EMPTY; diff --git a/Sources/libMultiMarkdown/odf.c b/Sources/libMultiMarkdown/odf.c index a610d7f..25f4e58 100644 --- a/Sources/libMultiMarkdown/odf.c +++ b/Sources/libMultiMarkdown/odf.c @@ -1331,6 +1331,7 @@ void mmd_export_token_odf(DString * out, const char * source, token * t, scratch break; case PAIR_CRITIC_SUB_DEL: if ((scratch->extensions & EXT_CRITIC) && + (t->next) && (t->next->type == PAIR_CRITIC_SUB_ADD)) { t->child->type = TEXT_EMPTY; t->child->mate->type = TEXT_EMPTY; @@ -1349,6 +1350,7 @@ void mmd_export_token_odf(DString * out, const char * source, token * t, scratch break; case PAIR_CRITIC_SUB_ADD: if ((scratch->extensions & EXT_CRITIC) && + (t->prev) && (t->prev->type == PAIR_CRITIC_SUB_DEL)) { t->child->type = TEXT_EMPTY; t->child->mate->type = TEXT_EMPTY;