summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-04-23 16:52:55 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-04-23 16:52:55 (GMT)
commite2a9aef742a70f2260dd38650126c5a66857023f (patch)
tree605d11f1a718398d4265dcba2e0aba2cfe99af1d
parent592aaa4f17d73ec8c475df0f44efaea8cc4d575c (diff)
downloadDoxygen-e2a9aef742a70f2260dd38650126c5a66857023f.zip
Doxygen-e2a9aef742a70f2260dd38650126c5a66857023f.tar.gz
Doxygen-e2a9aef742a70f2260dd38650126c5a66857023f.tar.bz2
Fix for crash due to wrong function prototype for portable_iconv_open
-rw-r--r--src/configimpl.l2
-rw-r--r--src/htmlhelp.cpp2
-rw-r--r--src/portable.h2
-rw-r--r--src/util.cpp4
4 files changed, 5 insertions, 5 deletions
diff --git a/src/configimpl.l b/src/configimpl.l
index baf6480..fbaf3ae 100644
--- a/src/configimpl.l
+++ b/src/configimpl.l
@@ -554,7 +554,7 @@ static QCString configStringRecode(
int inputSize=str.length();
int outputSize=inputSize*4+1;
QCString output(outputSize);
- void *cd = portable_iconv_open(outputEncoding,inputEncoding);
+ void *cd = portable_iconv_open(outputEncoding.data(),inputEncoding.data());
if (cd==(void *)(-1))
{
config_term("Error: unsupported character conversion: '%s'->'%s'\n",
diff --git a/src/htmlhelp.cpp b/src/htmlhelp.cpp
index 1672b69..05553e1 100644
--- a/src/htmlhelp.cpp
+++ b/src/htmlhelp.cpp
@@ -51,7 +51,7 @@ class HtmlHelpRecoder
{
QCString str = Config_getString(CHM_INDEX_ENCODING);
if (str.isEmpty()) str = "CP1250"; // use safe and likely default
- m_fromUtf8 = portable_iconv_open(str,"UTF-8");
+ m_fromUtf8 = portable_iconv_open(str.data(),"UTF-8");
if (m_fromUtf8==m_iconv_null)
{
term("unsupported character conversion for CHM_INDEX_ENCODING: '%s'->'UTF-8'\n", qPrint(str));
diff --git a/src/portable.h b/src/portable.h
index bf4cb47..205f024 100644
--- a/src/portable.h
+++ b/src/portable.h
@@ -52,7 +52,7 @@ namespace Portable
extern "C" {
- void * portable_iconv_open(const QCString &tocode, const QCString &fromcode);
+ void * portable_iconv_open(const char *tocode, const char *fromcode);
size_t portable_iconv (void *cd, char** inbuf, size_t *inbytesleft,
char* * outbuf, size_t *outbytesleft);
int portable_iconv_close (void *cd);
diff --git a/src/util.cpp b/src/util.cpp
index d45144c..565cd9f 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1389,7 +1389,7 @@ QCString transcodeCharacterStringToUTF8(const QCString &input)
int inputSize=input.length();
int outputSize=inputSize*4+1;
QCString output(outputSize);
- void *cd = portable_iconv_open(outputEncoding,inputEncoding);
+ void *cd = portable_iconv_open(outputEncoding,inputEncoding.data());
if (cd==(void *)(-1))
{
err("unsupported character conversion: '%s'->'%s'\n",
@@ -6161,7 +6161,7 @@ static int transcodeCharacterBuffer(const QCString &fileName,BufStr &srcBuf,int
{
if (inputEncoding.isEmpty() || outputEncoding.isEmpty()) return size;
if (qstricmp(inputEncoding,outputEncoding)==0) return size;
- void *cd = portable_iconv_open(outputEncoding,inputEncoding);
+ void *cd = portable_iconv_open(outputEncoding.data(),inputEncoding.data());
if (cd==(void *)(-1))
{
term("unsupported character conversion: '%s'->'%s': %s\n"