Date: Saturday, December 24, 2016 @ 11:39:28 Author: nicohood Revision: 201470
upgpkg: arduino-ctags 5.8-1 Added: arduino-ctags/trunk/CVE-2014-7204.patch Modified: arduino-ctags/trunk/PKGBUILD ---------------------+ CVE-2014-7204.patch | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ PKGBUILD | 39 +++++++++++++++++++ 2 files changed, 140 insertions(+) Added: CVE-2014-7204.patch =================================================================== --- CVE-2014-7204.patch (rev 0) +++ CVE-2014-7204.patch 2016-12-24 11:39:28 UTC (rev 201470) @@ -0,0 +1,101 @@ +From a499a10833d525c9af794c616dc40f7425110c71 Mon Sep 17 00:00:00 2001 +From: Colin Watson <[email protected]> +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); + } + } Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-12-24 11:36:22 UTC (rev 201469) +++ PKGBUILD 2016-12-24 11:39:28 UTC (rev 201470) @@ -0,0 +1,39 @@ +# Maintainer: NicoHood <archlinux {cat} nicohood {dog} de> +# PGP ID: 97312D5EB9D7AE7D0BD4307351DAE9B7C1AE9161 + +pkgname=arduino-ctags +_pkgname=ctags +pkgver=5.8 +pkgrel=1 +pkgdesc="A mix of ctags and anjuta-tags for the perfect C++ ctags" +arch=('i686' 'x86_64') +license=('GPL') +depends=('glibc') +url="https://github.com/arduino/ctags" +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/arduino/${_pkgname}/archive/${pkgver}-arduino10.tar.gz" + "CVE-2014-7204.patch") +sha512sums=('8d54ae4c165c687a8c2c0173c6eebe6c1862e2b6c7ba7332ce4ba73324c81a0c3f6d41c4a949d4caad8289ba408c4292de301ceb8f2f4031d23a231b124aad8e' + '212ec5d3daec5ffadc3ffe60406fc1f6b76356f2c56f99e999f8bf0646891c0067144e5de8ccbbe9391a803cd4005fe94a5973911274928dd7c1414d1ec68477') + +prepare() { + cd "${srcdir}/${_pkgname}-${pkgver}-arduino10" + + patch -Np1 <../CVE-2014-7204.patch + + sed -i 's/^CTAGS_PROG =.*/CTAGS_PROG = arduino-ctags/' Makefile.in + sed -i 's/^MANPAGE =.*/MANPAGE = arduino-ctags.1/' Makefile.in +} + +build() { + cd "${srcdir}/${_pkgname}-${pkgver}-arduino10" + + ./configure --prefix=/usr \ + --disable-external-sort + make +} + +package() { + cd "${srcdir}/${_pkgname}-${pkgver}-arduino10" + + make prefix=${pkgdir}/usr install +}
