From b77803a10c162728c0441179c1f0c1d46a610c17 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Sep 17 2020 19:13:17 +0000 Subject: Fix doxygen crash --- diff --git a/doxygen-1.8.20-glibc-assert.patch b/doxygen-1.8.20-glibc-assert.patch new file mode 100644 index 0000000..ab17398 --- /dev/null +++ b/doxygen-1.8.20-glibc-assert.patch @@ -0,0 +1,41 @@ +commit d067baf495d0415283ce724ad32cb9a08dc17c83 +Author: Dimitri van Heesch +Date: Thu Sep 17 20:14:39 2020 +0200 + + issue #8034: doxygen crashes + +diff --git a/src/definition.cpp b/src/definition.cpp +index 7874a5e4..dc968399 100644 +--- a/src/definition.cpp ++++ b/src/definition.cpp +@@ -176,14 +176,14 @@ static bool matchExcludedSymbols(const char *name) + QRegExp re(substitute(pattern,"*",".*"),TRUE); + int pl; + int i = re.match(symName,0,&pl); +- //printf(" %d = re.match(%s) pattern=%s\n",i,symName.data(),pattern.data()); ++ //printf(" %d = re.match(%s) pattern=%s pl=%d len=%d\n",i,symName.data(),pattern.data(),pl,symName.length()); + if (i!=-1) // wildcard match + { + uint ui=(uint)i; + uint sl=symName.length(); + // check if it is a whole word match +- if ((ui==0 || pattern.at(0)=='*' || (!isId(symName.at(ui-1)) && !forceStart)) && +- (ui+pl==sl || pattern.at(ui+pl)=='*' || (!isId(symName.at(ui+pl)) && !forceEnd)) ++ if ((ui==0 || pattern.at(0)=='*' || (!isId(symName.at(ui-1)) && !forceStart)) && ++ (ui+pl==sl || pattern.at(pattern.length()-1)=='*' || (!isId(symName.at(ui+pl)) && !forceEnd)) + ) + { + //printf("--> name=%s pattern=%s match at %d\n",symName.data(),pattern.data(),i); +diff --git a/src/util.cpp b/src/util.cpp +index 0581b5fa..34df8d7b 100644 +--- a/src/util.cpp ++++ b/src/util.cpp +@@ -5714,7 +5714,7 @@ QCString normalizeNonTemplateArgumentsInString( + result += name.mid(p,i-p); + QCString n = name.mid(i,l); + bool found=FALSE; +- for (const Argument formArg : formalArgs) ++ for (const Argument &formArg : formalArgs) + { + if (formArg.name == n) + { diff --git a/doxygen.spec b/doxygen.spec index 78cad06..ab97e09 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -16,7 +16,7 @@ Summary: A documentation system for C/C++ Name: doxygen Epoch: 1 Version: 1.8.20 -Release: 3%{?dist} +Release: 4%{?dist} # No version is specified. License: GPL+ @@ -27,6 +27,7 @@ Source1: doxywizard.desktop # upstream patches Patch0: doxygen-1.8.20-enums-multiple-files.patch Patch1: doxygen-different-results-on-64-and-32-bit.patch +Patch2: doxygen-1.8.20-glibc-assert.patch BuildRequires: %{_bindir}/python3 BuildRequires: ImageMagick @@ -304,6 +305,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} %endif %changelog +* Thu Sep 17 2020 Than Ngo - 1.8.20-4 +- Fix doxygen crash + * Tue Sep 15 2020 Mattias Ellert - 1:1.8.20-3 - Fix doxygen producing different results on 32 and 64 bit architectures