[geany/geany-plugins] 920c9d: Merge pull request #447 from b4n/pairtaghighlighter/crash-on-null-tag
Frank Lanitz
git-noreply at xxxxx
Mon Jun 20 18:13:18 UTC 2016
Branch: refs/heads/master
Author: Frank Lanitz <frank at frank.uvena.de>
Committer: GitHub <noreply at github.com>
Date: Mon, 20 Jun 2016 18:13:18 UTC
Commit: 920c9d0aadc38ed76ce4ce5547ce0115ef0845aa
https://github.com/geany/geany-plugins/commit/920c9d0aadc38ed76ce4ce5547ce0115ef0845aa
Log Message:
-----------
Merge pull request #447 from b4n/pairtaghighlighter/crash-on-null-tag
pairtaghighlighter: Fix crash if the tag name is missing
Modified Paths:
--------------
pairtaghighlighter/src/pair_tag_highlighter.c
Modified: pairtaghighlighter/src/pair_tag_highlighter.c
13 lines changed, 9 insertions(+), 4 deletions(-)
===================================================================
@@ -169,8 +169,10 @@ static gboolean is_tag_empty(gchar *tagName)
const char *emptyTags[] = {"area", "base", "br", "col", "embed",
"hr", "img", "input", "keygen", "link", "meta",
"param", "source", "track", "wbr", "!DOCTYPE"};
-
unsigned int i;
+
+ g_return_val_if_fail(tagName != NULL, FALSE);
+
for(i=0; i<(sizeof(emptyTags)/sizeof(emptyTags[0])); i++)
{
if(strcmp(tagName, emptyTags[i]) == 0)
@@ -207,7 +209,7 @@ static gchar *get_tag_name(ScintillaObject *sci, gint openingBracket, gint closi
if(nameEnd-nameStart > MAX_TAG_NAME)
break;
}
- return sci_get_contents_range(sci, nameStart, nameEnd-1);
+ return nameEnd > nameStart ? sci_get_contents_range(sci, nameStart, nameEnd-1) : NULL;
}
@@ -233,7 +235,7 @@ static void findMatchingOpeningTag(ScintillaObject *sci, gchar *tagName, gint op
gchar *matchingTagName = get_tag_name(sci, matchingOpeningBracket,
matchingClosingBracket,
isMatchingTagOpening);
- if(strcmp(tagName, matchingTagName) == 0)
+ if(matchingTagName && strcmp(tagName, matchingTagName) == 0)
{
if(TRUE == isMatchingTagOpening)
openingTagsCount++;
@@ -289,7 +291,7 @@ static void findMatchingClosingTag(ScintillaObject *sci, gchar *tagName, gint cl
gchar *matchingTagName = get_tag_name(sci, matchingOpeningBracket,
matchingClosingBracket,
isMatchingTagOpening);
- if(strcmp(tagName, matchingTagName) == 0)
+ if(matchingTagName && strcmp(tagName, matchingTagName) == 0)
{
if(TRUE == isMatchingTagOpening)
openingTagsCount++;
@@ -319,6 +321,9 @@ static void findMatchingTag(ScintillaObject *sci, gint openingBracket, gint clos
gboolean isTagOpening = is_tag_opening(sci, openingBracket);
gchar *tagName = get_tag_name(sci, openingBracket, closingBracket, isTagOpening);
+ if (!tagName)
+ return;
+
if(is_tag_self_closing(sci, closingBracket) || is_tag_empty(tagName)) {
highlight_tag(sci, openingBracket, closingBracket, EMPTY_TAG_COLOR);
} else {
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Plugins-Commits
mailing list