summaryrefslogtreecommitdiffstats
path: root/abs/extra/ctags/CVE-2014-7204.patch
diff options
context:
space:
mode:
authorBritney Fransen <brfransen@gmail.com>2018-03-07 13:20:12 (GMT)
committerBritney Fransen <brfransen@gmail.com>2018-03-07 13:20:12 (GMT)
commit1e2f1c1a056e3d5c5a0c4b2856bda6035040187e (patch)
tree33629a722e6bd8da5cfb1dd661f2e5a77ca0f2ec /abs/extra/ctags/CVE-2014-7204.patch
parent2d8bbc7e0c21bb42edeb4c78667e6548f9381c38 (diff)
downloadlinhes_pkgbuild-1e2f1c1a056e3d5c5a0c4b2856bda6035040187e.zip
linhes_pkgbuild-1e2f1c1a056e3d5c5a0c4b2856bda6035040187e.tar.gz
linhes_pkgbuild-1e2f1c1a056e3d5c5a0c4b2856bda6035040187e.tar.bz2
ctags: dep of source-highlight
Diffstat (limited to 'abs/extra/ctags/CVE-2014-7204.patch')
-rw-r--r--abs/extra/ctags/CVE-2014-7204.patch102
1 files changed, 102 insertions, 0 deletions
diff --git a/abs/extra/ctags/CVE-2014-7204.patch b/abs/extra/ctags/CVE-2014-7204.patch
new file mode 100644
index 0000000..baf036f
--- /dev/null
+++ b/abs/extra/ctags/CVE-2014-7204.patch
@@ -0,0 +1,102 @@
+From a499a10833d525c9af794c616dc40f7425110c71 Mon Sep 17 00:00:00 2001
+From: Colin Watson <cjwatson@debian.org>
+Date: Sat, 27 Sep 2014 14:37:19 +0100
+Subject: Changed the javascript parser to set the tag's scope rather than
+ including it in the tag name.
+
+Patch from Colomban.
+
+Author: David Fishburn
+Origin: upstream, http://sourceforge.net/p/ctags/code/791/
+Bug-Debian: https://bugs.debian.org/742605
+Last-Update: 2014-09-27
+
+Patch-Name: jscript-set-tag-scope.patch
+---
+ jscript.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 51 insertions(+), 3 deletions(-)
+
+diff --git a/jscript.c b/jscript.c
+index 5de3367..a790355 100644
+--- a/jscript.c
++++ b/jscript.c
+@@ -215,6 +215,7 @@ static void deleteToken (tokenInfo *const token)
+ * Tag generation functions
+ */
+
++/*
+ static void makeConstTag (tokenInfo *const token, const jsKind kind)
+ {
+ if (JsKinds [kind].enabled && ! token->ignoreTag )
+@@ -238,12 +239,13 @@ static void makeJsTag (tokenInfo *const token, const jsKind kind)
+
+ if (JsKinds [kind].enabled && ! token->ignoreTag )
+ {
+- /*
++ *
+ * If a scope has been added to the token, change the token
+ * string to include the scope when making the tag.
+- */
++ *
+ if ( vStringLength(token->scope) > 0 )
+ {
++ *
+ fulltag = vStringNew ();
+ vStringCopy(fulltag, token->scope);
+ vStringCatS (fulltag, ".");
+@@ -251,8 +253,54 @@ static void makeJsTag (tokenInfo *const token, const jsKind kind)
+ vStringTerminate(fulltag);
+ vStringCopy(token->string, fulltag);
+ vStringDelete (fulltag);
++ *
++ jsKind parent_kind = JSTAG_CLASS;
++
++ *
++ * if we're creating a function (and not a method),
++ * guess we're inside another function
++ *
++ if (kind == JSTAG_FUNCTION)
++ parent_kind = JSTAG_FUNCTION;
++
++ e.extensionFields.scope[0] = JsKinds [parent_kind].name;
++ e.extensionFields.scope[1] = vStringValue (token->scope);
++ }
++ * makeConstTag (token, kind); *
++ makeTagEntry (&e);
++ }
++}
++*/
++
++static void makeJsTag (tokenInfo *const token, const jsKind kind)
++{
++ if (JsKinds [kind].enabled && ! token->ignoreTag )
++ {
++ const char *const name = vStringValue (token->string);
++ tagEntryInfo e;
++ initTagEntry (&e, name);
++
++ e.lineNumber = token->lineNumber;
++ e.filePosition = token->filePosition;
++ e.kindName = JsKinds [kind].name;
++ e.kind = JsKinds [kind].letter;
++
++ if ( vStringLength(token->scope) > 0 )
++ {
++ jsKind parent_kind = JSTAG_CLASS;
++
++ /*
++ * If we're creating a function (and not a method),
++ * guess we're inside another function
++ */
++ if (kind == JSTAG_FUNCTION)
++ parent_kind = JSTAG_FUNCTION;
++
++ e.extensionFields.scope[0] = JsKinds [parent_kind].name;
++ e.extensionFields.scope[1] = vStringValue (token->scope);
+ }
+- makeConstTag (token, kind);
++
++ makeTagEntry (&e);
+ }
+ }
+