Bug 1372065 - fix cppcheck linter error in Necko. r=jduell

For netwerk/cache2/CacheFileInputStream.cpp:148 and netwerk/protocol/http/nsHttpHeaderArray.cpp:358,
missing "()" in the if statement.

For netwerk/base/rust-url-capi/test/test.cpp:29, netwerk/streamconv/converters/nsHTTPCompressConv.cpp:297,
and netwerk/streamconv/converters/nsHTTPCompressConv.cpp:300, null pointer will be returned but the
original memory buffer will not be freed if |realloc| fails.  We should remember the original memory
buffer and free it if error is detected.

MozReview-Commit-ID: 2ggXsL73jYV

--HG--
extra : rebase_source : e47e41f2b37f717207bd13990efead22a14db1c0
This commit is contained in:
Shih-Chiang Chien 2017-06-12 11:51:26 +08:00
Родитель 1a809037a4
Коммит 10b963a865
4 изменённых файлов: 16 добавлений и 6 удалений

Просмотреть файл

@ -26,7 +26,10 @@ public:
{
mLength = size;
if (mBuffer) {
mBuffer = (char *)realloc(mBuffer, size);
char* originalBuffer = mBuffer;
if (!(mBuffer = (char *)realloc(originalBuffer, size))) {
free(originalBuffer);
}
return;
}
mBuffer = (char *)malloc(size);

Просмотреть файл

@ -145,8 +145,9 @@ CacheFileInputStream::ReadSegments(nsWriteSegmentFun aWriter, void *aClosure,
LOG(("CacheFileInputStream::ReadSegments() - Stream is closed. [this=%p, "
"status=0x%08" PRIx32 "]", this, static_cast<uint32_t>(mStatus)));
if NS_FAILED(mStatus)
if (NS_FAILED(mStatus)) {
return mStatus;
}
return NS_OK;
}

Просмотреть файл

@ -343,7 +343,7 @@ nsHttpHeaderArray::VisitHeaders(nsIHttpHeaderVisitor *visitor, nsHttpHeaderArray
hdr = entry.headerNameOriginal;
}
rv = visitor->VisitHeader(hdr, entry.value);
if NS_FAILED(rv) {
if (NS_FAILED(rv)) {
return rv;
}
}

Просмотреть файл

@ -294,10 +294,16 @@ nsHTTPCompressConv::OnDataAvailable(nsIRequest* request,
case HTTP_COMPRESS_DEFLATE:
if (mInpBuffer != nullptr && streamLen > mInpBufferLen) {
mInpBuffer = (unsigned char *) realloc(mInpBuffer, mInpBufferLen = streamLen);
unsigned char* originalInpBuffer = mInpBuffer;
if (!(mInpBuffer = (unsigned char *) realloc(originalInpBuffer, mInpBufferLen = streamLen))) {
free(originalInpBuffer);
}
if (mOutBufferLen < streamLen * 2) {
mOutBuffer = (unsigned char *) realloc(mOutBuffer, mOutBufferLen = streamLen * 3);
unsigned char* originalOutBuffer = mOutBuffer;
if (!(mOutBuffer = (unsigned char *) realloc(mOutBuffer, mOutBufferLen = streamLen * 3))) {
free(originalOutBuffer);
}
}
if (mInpBuffer == nullptr || mOutBuffer == nullptr) {