From 16e4f9c8407591ae3f5bef8ab12554e4ef8527e3 Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Jan 19 2021 08:36:30 +0000 Subject: fixed bz#1916161, crashes when parsing config file --- diff --git a/doxgen-1.9.1-crash-when-parsing-config-file.patch b/doxgen-1.9.1-crash-when-parsing-config-file.patch new file mode 100644 index 0000000..848750d --- /dev/null +++ b/doxgen-1.9.1-crash-when-parsing-config-file.patch @@ -0,0 +1,64 @@ +commit 3b15963316b59cd1af3468a43535d90343916ffb +Author: Dimitri van Heesch +Date: Mon Jan 18 19:59:16 2021 +0100 + + issue #8343: doxygen-1.9.1 crashes when parsing config file + +diff --git a/src/configimpl.l b/src/configimpl.l +index 7f73ec01..56a2e108 100644 +--- a/src/configimpl.l ++++ b/src/configimpl.l +@@ -1210,7 +1210,7 @@ static void substEnvVarsInStrList(StringVector &sl) + c=result.at(i); + if (c=='"') // end quote + { +- results.push_back(result.mid(p,i-p).data()); ++ results.push_back(result.mid(p,i-p).str()); + p=i+1; + break; + } +@@ -1222,7 +1222,7 @@ static void substEnvVarsInStrList(StringVector &sl) + } + else if (c==' ' || c=='\t') // separator + { +- if (i>p) results.push_back(result.mid(p,i-p).data()); ++ if (i>p) results.push_back(result.mid(p,i-p).str()); + p=i+1; + } + } +@@ -1234,7 +1234,7 @@ static void substEnvVarsInStrList(StringVector &sl) + } + else // just goto the next element in the list + { +- if (!result.isEmpty()) results.push_back(result.data()); ++ if (!result.isEmpty()) results.push_back(result.str()); + } + } + sl = results; +@@ -1409,7 +1409,7 @@ static void cleanUpPaths(StringVector &str) + QFileInfo fi(path.c_str()); + if (fi.exists() && fi.isDir()) + { +- path = fi.absFilePath().utf8().data(); ++ path = fi.absFilePath().utf8().str(); + if (path[path.size()-1]!='/') path+='/'; + } + } +@@ -1545,7 +1545,7 @@ void Config::checkAndCorrect() + QString p = QDir::currentDirPath(); + if (p.at(p.length()-1)!='/') + p.append('/'); +- stripFromPath.push_back(p.utf8().data()); ++ stripFromPath.push_back(p.utf8().str()); + } + else + { +@@ -1882,7 +1882,7 @@ void Config::checkAndCorrect() + if (inputSources.empty()) + { + // use current dir as the default +- inputSources.push_back(QDir::currentDirPath().utf8().data()); ++ inputSources.push_back(QDir::currentDirPath().utf8().str()); + } + else + { diff --git a/doxygen.spec b/doxygen.spec index 28a2c72..3d86764 100644 --- a/doxygen.spec +++ b/doxygen.spec @@ -16,7 +16,7 @@ Summary: A documentation system for C/C++ Name: doxygen Epoch: 1 Version: 1.9.1 -Release: 1%{?dist} +Release: 2%{?dist} # No version is specified. License: GPL+ @@ -27,6 +27,7 @@ Source1: doxywizard.desktop # these icons are part of doxygen and converted from doxywizard.ico Source2: doxywizard-icons.tar.xz # upstream patches +Patch1: doxgen-1.9.1-crash-when-parsing-config-file.patch BuildRequires: %{_bindir}/python3 BuildRequires: gcc-c++ gcc @@ -300,6 +301,9 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{SOURCE1} %endif %changelog +* Tue Jan 19 2021 Than Ngo - 1.9.1-2 +- fixed bz#1916161, crashes when parsing config file + * Mon Jan 11 2021 Than Ngo - 1.9.1-1 - update to 1.9.1