зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
1a809037a4
Коммит
10b963a865
|
@ -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) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче