瀏覽代碼

fix review finding: dereference after null-check.

Kim Kulling 6 年之前
父節點
當前提交
c63b1a1fd5
共有 2 個文件被更改,包括 10 次插入9 次删除
  1. 9 7
      code/EmbedTexturesProcess.cpp
  2. 1 2
      code/Q3BSPFileImporter.cpp

+ 9 - 7
code/EmbedTexturesProcess.cpp

@@ -124,26 +124,28 @@ bool EmbedTexturesProcess::addTexture(aiScene* pScene, std::string path) const {
     file.read(reinterpret_cast<char*>(imageContent), imageSize);
 
     // Enlarging the textures table
-    auto textureId = pScene->mNumTextures++;
+    unsigned int textureId = pScene->mNumTextures++;
     auto oldTextures = pScene->mTextures;
     pScene->mTextures = new aiTexture*[pScene->mNumTextures];
-    memmove(pScene->mTextures, oldTextures, sizeof(aiTexture*) * (pScene->mNumTextures - 1u));
+    ::memmove(pScene->mTextures, oldTextures, sizeof(aiTexture*) * (pScene->mNumTextures - 1u));
 
     // Add the new texture
-    auto pTexture = new aiTexture();
+    auto pTexture = new aiTexture;
     pTexture->mHeight = 0; // Means that this is still compressed
     pTexture->mWidth = static_cast<uint32_t>(imageSize);
     pTexture->pcData = imageContent;
 
     auto extension = path.substr(path.find_last_of('.') + 1u);
     std::transform(extension.begin(), extension.end(), extension.begin(), ::tolower);
-    if (extension == "jpeg") extension = "jpg";
+    if (extension == "jpeg") {
+        extension = "jpg";
+    }
+
     size_t len = extension.size();
-    if (len > HINTMAXTEXTURELEN -1) {
+    if (len > HINTMAXTEXTURELEN -1 ) {
         len = HINTMAXTEXTURELEN - 1;
     }
-    strncpy(pTexture->achFormatHint, extension.c_str(), len);
-
+    ::strncpy(pTexture->achFormatHint, extension.c_str(), len);
     pScene->mTextures[textureId] = pTexture;
 
     return true;

+ 1 - 2
code/Q3BSPFileImporter.cpp

@@ -400,6 +400,7 @@ void Q3BSPFileImporter::createTriangleTopology( const Q3BSP::Q3BSPModel *pModel,
             if (nullptr != m_pCurrentFace) {
                 m_pCurrentFace->mNumIndices = 3;
                 m_pCurrentFace->mIndices = new unsigned int[3];
+                m_pCurrentFace->mIndices[ idx ] = vertIdx;
             }
         }
 
@@ -409,9 +410,7 @@ void Q3BSPFileImporter::createTriangleTopology( const Q3BSP::Q3BSPModel *pModel,
         pMesh->mTextureCoords[ 0 ][ vertIdx ].Set( pVertex->vTexCoord.x, pVertex->vTexCoord.y, 0.0f );
         pMesh->mTextureCoords[ 1 ][ vertIdx ].Set( pVertex->vLightmap.x, pVertex->vLightmap.y, 0.0f );
 
-        m_pCurrentFace->mIndices[ idx ] = vertIdx;
         vertIdx++;
-
         idx++;
     }
 }