diff -Nru doxygen-1.8.8/debian/changelog doxygen-1.8.8/debian/changelog --- doxygen-1.8.8/debian/changelog 2014-08-21 21:43:07.000000000 +0000 +++ doxygen-1.8.8/debian/changelog 2014-10-05 15:52:05.000000000 +0000 @@ -1,3 +1,10 @@ +doxygen (1.8.8-4) unstable; urgency=medium + + * Cherry pick 6d4044ad43ae1424a256eb1c26992301e7c64f4a. (Closes: #760700) + * Declare compliance with policy 3.9.6: No changes needed. + + -- Helmut Grohne Sun, 05 Oct 2014 17:52:01 +0200 + doxygen (1.8.8-3) unstable; urgency=medium * Fix sqlite3 configuration. diff -Nru doxygen-1.8.8/debian/control doxygen-1.8.8/debian/control --- doxygen-1.8.8/debian/control 2014-08-21 21:41:55.000000000 +0000 +++ doxygen-1.8.8/debian/control 2014-10-05 15:37:48.000000000 +0000 @@ -22,7 +22,7 @@ graphviz, latex-xcolor, rdfind -Standards-Version: 3.9.5 +Standards-Version: 3.9.6 Homepage: http://www.stack.nl/~dimitri/doxygen/ XS-Testsuite: autopkgtest diff -Nru doxygen-1.8.8/debian/patches/fix-760700.diff doxygen-1.8.8/debian/patches/fix-760700.diff --- doxygen-1.8.8/debian/patches/fix-760700.diff 1970-01-01 00:00:00.000000000 +0000 +++ doxygen-1.8.8/debian/patches/fix-760700.diff 2014-10-05 14:59:37.000000000 +0000 @@ -0,0 +1,67 @@ +Author: Dimitri van Heesch +Date: Tue Aug 26 20:18:51 2014 +0200 +Origin: https://github.com/doxygen/doxygen/commits/6d4044ad43ae1424a256eb1c26992301e7c64f4a +Bug-Debian: https://bugs.debian.org/760700 + + Fix potential crash when reading tag file which contained nested java classes using generics + + Also fixed a parse error when reading a tag file with a Java-style enum + +diff --git a/src/doxygen.cpp b/src/doxygen.cpp +index 533e6ef..5492dc9 100644 +--- a/src/doxygen.cpp ++++ b/src/doxygen.cpp +@@ -1037,9 +1037,16 @@ static Definition *buildScopeFromQualifiedName(const QCString name, + else // scope is a namespace + { + } +- // make the parent/child scope relation +- prevScope->addInnerCompound(innerScope); +- innerScope->setOuterScope(prevScope); ++ if (innerScope) ++ { ++ // make the parent/child scope relation ++ prevScope->addInnerCompound(innerScope); ++ innerScope->setOuterScope(prevScope); ++ } ++ else // current scope is a class, so return only the namespace part... ++ { ++ return prevScope; ++ } + // proceed to the next scope fragment + p=idx+l+2; + prevScope=innerScope; +diff --git a/src/tagreader.cpp b/src/tagreader.cpp +index 23b8f13..50909ee 100644 +--- a/src/tagreader.cpp ++++ b/src/tagreader.cpp +@@ -95,7 +95,7 @@ class TagMemberInfo + class TagClassInfo + { + public: +- enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category }; ++ enum Kind { Class, Struct, Union, Interface, Exception, Protocol, Category, Enum }; + TagClassInfo() { bases=0, templateArguments=0; members.setAutoDelete(TRUE); isObjC=FALSE; } + ~TagClassInfo() { delete bases; delete templateArguments; } + QCString name; +@@ -301,6 +301,12 @@ class TagFileParser : public QXmlDefaultHandler + m_curClass->kind = TagClassInfo::Interface; + m_state = InClass; + } ++ else if (kind=="enum") ++ { ++ m_curClass = new TagClassInfo; ++ m_curClass->kind = TagClassInfo::Enum; ++ m_state = InClass; ++ } + else if (kind=="exception") + { + m_curClass = new TagClassInfo; +@@ -1286,6 +1292,7 @@ void TagFileParser::buildLists(Entry *root) + case TagClassInfo::Struct: ce->spec = Entry::Struct; break; + case TagClassInfo::Union: ce->spec = Entry::Union; break; + case TagClassInfo::Interface: ce->spec = Entry::Interface; break; ++ case TagClassInfo::Enum: ce->spec = Entry::Enum; break; + case TagClassInfo::Exception: ce->spec = Entry::Exception; break; + case TagClassInfo::Protocol: ce->spec = Entry::Protocol; break; + case TagClassInfo::Category: ce->spec = Entry::Category; break; diff -Nru doxygen-1.8.8/debian/patches/series doxygen-1.8.8/debian/patches/series --- doxygen-1.8.8/debian/patches/series 2014-08-21 21:40:35.000000000 +0000 +++ doxygen-1.8.8/debian/patches/series 2014-10-05 14:56:26.000000000 +0000 @@ -9,3 +9,4 @@ system_tmake.patch clang-configure.diff sqlite3-configure.diff +fix-760700.diff