Fix doxygen crash

This commit is contained in:
Than Ngo 2020-09-17 21:13:17 +02:00
parent f9a41fa6e4
commit b77803a10c
2 changed files with 46 additions and 1 deletions

View File

@ -0,0 +1,41 @@
commit d067baf495d0415283ce724ad32cb9a08dc17c83
Author: Dimitri van Heesch <doxygen@gmail.com>
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)
{

View File

@ -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 <than@redhat.com> - 1.8.20-4
- Fix doxygen crash
* Tue Sep 15 2020 Mattias Ellert <mattias.ellert@physics.uu.se> - 1:1.8.20-3
- Fix doxygen producing different results on 32 and 64 bit architectures