Accepting request 308712 from devel:tools

1

OBS-URL: https://build.opensuse.org/request/show/308712
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ctags?expand=0&rev=30
This commit is contained in:
Dominique Leuenberger 2015-05-26 10:37:12 +00:00 committed by Git OBS Bridge
commit ae043f0206
3 changed files with 110 additions and 1 deletions

100
CVE-2014-7204.patch Normal file
View File

@ -0,0 +1,100 @@
From e23093345c6f63358d979f2c87c57ef4050ba864 Mon Sep 17 00:00:00 2001
From: dfishburn <dfishburn@c5d04d22-be80-434c-894e-aa346cc9e8e8>
Date: Wed, 24 Oct 2012 01:13:13 +0000
Subject: [PATCH] Changed the javascript parser to set the tag's scope rather
than including it in the tag name.
Patch from Colomban.
git-svn-id: svn://svn.code.sf.net/p/ctags/code/trunk@791 c5d04d22-be80-434c-894e-aa346cc9e8e8
Signed-off-by: Petr Uzel <petr.uzel@suse.cz>
---
jscript.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 51 insertions(+), 3 deletions(-)
Index: ctags-5.8/jscript.c
===================================================================
--- ctags-5.8.orig/jscript.c
+++ ctags-5.8/jscript.c
@@ -215,6 +215,7 @@ static void deleteToken (tokenInfo *cons
* 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
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
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);
+ * 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);
+ }
+
+ makeTagEntry (&e);
}
}

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Tue Oct 7 05:45:51 UTC 2014 - puzel@suse.com
- Fix endless loop in javascript parser
(bnc#899486, CVE-2014-7204)
- Added CVE-2014-7204.patch
-------------------------------------------------------------------
Sat Apr 27 10:12:43 UTC 2013 - schwab@linux-m68k.org

View File

@ -1,7 +1,7 @@
#
# spec file for package ctags
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -30,6 +30,7 @@ Patch1: ctags-5.7.diff
Source2: ctags-ycp-parser.diff
Patch3: ctags-date-time.patch
Patch4: go-tags.patch
Patch5: CVE-2014-7204.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: update-alternatives
PreReq: update-alternatives
@ -45,6 +46,7 @@ Emacs, and several other editors.
#%#patch2
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
./configure CFLAGS="%{optflags} -Wall" \