Fix uninitialized coords in _DrawCoonPatchMeshes
[pdfium.git] / core / src / fpdfapi / fpdf_render / fpdf_render_pattern.cpp
index 4b4f929..ba0ca84 100644 (file)
@@ -66,7 +66,7 @@ static void _DrawAxialShading(CFX_DIBitmap* pBitmap, CFX_AffineMatrix* pObject2B
                 }
             }
         }
-        FX_FLOAT R, G, B;
+        FX_FLOAT R = 0.0f, G = 0.0f, B = 0.0f;
         pCS->GetRGB(pResults, R, G, B);
         rgb_array[i] = FXARGB_TODIB(FXARGB_MAKE(alpha, FXSYS_round(R * 255), FXSYS_round(G * 255), FXSYS_round(B * 255)));
     }
@@ -389,6 +389,8 @@ static void _DrawFreeGouraudShading(CFX_DIBitmap* pBitmap, CFX_AffineMatrix* pOb
         return;
     }
     CPDF_MeshVertex triangle[3];
+    FXSYS_memset32(triangle, 0, sizeof(triangle));
+
     while (!stream.m_BitStream.IsEOF()) {
         CPDF_MeshVertex vertex;
         FX_DWORD flag = stream.GetVertex(vertex, pObject2Bitmap);
@@ -688,6 +690,11 @@ static void _DrawCoonPatchMeshes(FX_BOOL bTensor, CFX_DIBitmap* pBitmap, CFX_Aff
         pPoints[i].m_Flag = FXPT_BEZIERTO;
     }
     CFX_FloatPoint coords[16];
+    for (int i = 0; i < 16; i ++)
+    {
+        coords[i].Set(0.0f, 0.0f);
+    }
+
     int point_count = bTensor ? 16 : 12;
     while (!stream.m_BitStream.IsEOF()) {
         FX_DWORD flag = stream.GetFlag();
@@ -710,7 +717,7 @@ static void _DrawCoonPatchMeshes(FX_BOOL bTensor, CFX_DIBitmap* pBitmap, CFX_Aff
             pObject2Bitmap->Transform(coords[i].x, coords[i].y);
         }
         for (i = iStartColor; i < 4; i ++) {
-            FX_FLOAT r, g, b;
+            FX_FLOAT r=0.0f, g=0.0f, b=0.0f;
             stream.GetColor(r, g, b);
             patch.patch_colors[i].comp[0] = (FX_INT32)(r * 255);
             patch.patch_colors[i].comp[1] = (FX_INT32)(g * 255);
@@ -753,7 +760,7 @@ void CPDF_RenderStatus::DrawShading(CPDF_ShadingPattern* pPattern, CFX_AffineMat
             for (int i = 0; i < pColorSpace->CountComponents(); i ++) {
                 comps[i] = pBackColor->GetNumber(i);
             }
-            FX_FLOAT R, G, B;
+            FX_FLOAT R = 0.0f, G = 0.0f, B = 0.0f;
             pColorSpace->GetRGB(comps, R, G, B);
             background = ArgbEncode(255, (FX_INT32)(R * 255), (FX_INT32)(G * 255), (FX_INT32)(B * 255));
         }