diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2015-01-02 08:56:45 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2015-01-02 09:45:18 (GMT) |
commit | 312bef563a5be72f6423377247db1b80044bf711 (patch) | |
tree | 3a656445fa67469b2f1783932fe127e9f39af69a /src/config.l | |
parent | ed39dab59f8af2c5b42cfac0b3140cf594412121 (diff) | |
download | Doxygen-312bef563a5be72f6423377247db1b80044bf711.zip Doxygen-312bef563a5be72f6423377247db1b80044bf711.tar.gz Doxygen-312bef563a5be72f6423377247db1b80044bf711.tar.bz2 |
Fixed a couple of cases where sharing string data could lead to corruption
Also made dangerous string access more visible by introducing rawData().
This replaces data() which will now return a constant string.
Diffstat (limited to 'src/config.l')
-rw-r--r-- | src/config.l | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/config.l b/src/config.l index a237faf..2adbbc7 100644 --- a/src/config.l +++ b/src/config.l @@ -85,7 +85,7 @@ static QCString convertToComment(const QCString &s, const QCString &u) if (!s.isEmpty()) { QCString tmp=s.stripWhiteSpace(); - char *p=tmp.data(); + const char *p=tmp.data(); char c; result+="#"; if (*p && *p!='\n') @@ -495,8 +495,8 @@ static QCString configStringRecode( } size_t iLeft=(size_t)inputSize; size_t oLeft=(size_t)outputSize; - char *inputPtr = str.data(); - char *outputPtr = output.data(); + char *inputPtr = str.rawData(); + char *outputPtr = output.rawData(); if (!portable_iconv(cd, &inputPtr, &iLeft, &outputPtr, &oLeft)) { outputSize-=(int)oLeft; @@ -1695,7 +1695,7 @@ static QCString configFileToString(const char *name) QCString contents(bSize); int totalSize=0; int size; - while ((size=f.readBlock(contents.data()+totalSize,bSize))==bSize) + while ((size=f.readBlock(contents.rawData()+totalSize,bSize))==bSize) { totalSize+=bSize; contents.resize(totalSize+bSize); @@ -1721,7 +1721,7 @@ static QCString configFileToString(const char *name) { int fsize=f.size(); QCString contents(fsize+2); - f.readBlock(contents.data(),fsize); + f.readBlock(contents.rawData(),fsize); f.close(); if (fsize==0 || contents[fsize-1]=='\n') contents[fsize]='\0'; |