зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1828068 - Add some null checks/assertions to jar code r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D178986
This commit is contained in:
Родитель
eb4cf655f6
Коммит
a4e6154ebb
|
@ -77,6 +77,7 @@ class nsJARInputThunk : public nsIInputStream {
|
|||
mJarReader(zipReader),
|
||||
mJarEntry(jarEntry),
|
||||
mContentLength(-1) {
|
||||
MOZ_DIAGNOSTIC_ASSERT(zipReader, "zipReader must not be null");
|
||||
if (ENTRY_IS_DIRECTORY(mJarEntry) && fullJarURI) {
|
||||
nsCOMPtr<nsIURI> urlWithoutQueryRef;
|
||||
nsresult rv = NS_MutateURI(fullJarURI)
|
||||
|
@ -110,6 +111,9 @@ class nsJARInputThunk : public nsIInputStream {
|
|||
NS_IMPL_ISUPPORTS(nsJARInputThunk, nsIInputStream)
|
||||
|
||||
nsresult nsJARInputThunk::Init() {
|
||||
if (!mJarReader) {
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
}
|
||||
nsresult rv;
|
||||
if (ENTRY_IS_DIRECTORY(mJarEntry)) {
|
||||
// A directory stream also needs the Spec of the FullJarURI
|
||||
|
|
|
@ -35,7 +35,10 @@ NS_IMPL_ISUPPORTS(nsJARInputStream, nsIInputStream)
|
|||
nsresult nsJARInputStream::InitFile(nsZipHandle* aFd, const uint8_t* aData,
|
||||
nsZipItem* aItem) {
|
||||
nsresult rv = NS_OK;
|
||||
MOZ_ASSERT(aFd, "Argument may not be null");
|
||||
MOZ_DIAGNOSTIC_ASSERT(aFd, "Argument may not be null");
|
||||
if (!aFd) {
|
||||
return NS_ERROR_INVALID_ARG;
|
||||
}
|
||||
MOZ_ASSERT(aItem, "Argument may not be null");
|
||||
|
||||
// Mark it as closed, in case something fails in initialisation
|
||||
|
|
|
@ -766,6 +766,7 @@ nsZipHandle* nsZipArchive::GetFD() const { return mFd.get(); }
|
|||
//---------------------------------------------
|
||||
uint32_t nsZipArchive::GetDataOffset(nsZipItem* aItem) {
|
||||
MOZ_ASSERT(aItem);
|
||||
MOZ_DIAGNOSTIC_ASSERT(mFd);
|
||||
|
||||
uint32_t offset;
|
||||
MMAP_FAULT_HANDLER_BEGIN_HANDLE(mFd)
|
||||
|
@ -809,7 +810,10 @@ uint32_t nsZipArchive::GetDataOffset(nsZipItem* aItem) {
|
|||
// nsZipArchive::GetData
|
||||
//---------------------------------------------
|
||||
const uint8_t* nsZipArchive::GetData(nsZipItem* aItem) {
|
||||
MOZ_ASSERT(aItem);
|
||||
MOZ_DIAGNOSTIC_ASSERT(aItem);
|
||||
if (!aItem) {
|
||||
return nullptr;
|
||||
}
|
||||
uint32_t offset = GetDataOffset(aItem);
|
||||
|
||||
MMAP_FAULT_HANDLER_BEGIN_HANDLE(mFd)
|
||||
|
@ -838,6 +842,7 @@ nsZipArchive::nsZipArchive(nsZipHandle* aZipHandle, PRFileDesc* aFd,
|
|||
: mRefCnt(0), mFd(aZipHandle), mUseZipLog(false), mBuiltSynthetics(false) {
|
||||
// initialize the table to nullptr
|
||||
memset(mFiles, 0, sizeof(mFiles));
|
||||
MOZ_DIAGNOSTIC_ASSERT(aZipHandle);
|
||||
|
||||
//-- get table of contents for archive
|
||||
aRv = BuildFileList(aFd);
|
||||
|
|
Загрузка…
Ссылка в новой задаче