On 01/11/2016 06:29 PM, Caolán McNamara wrote:
commit c93a43c0c9113bc1c787fe6b3c5e58a8bfd80be0
Author: Caolán McNamara <caol...@redhat.com>
Date:   Mon Jan 11 17:08:39 2016 +0000

     initialize new member variables

     Change-Id: I3839bc134b337ccb7cfdb2ee70524e4721c8f83c

diff --git a/vcl/source/font/fontattributes.cxx 
b/vcl/source/font/fontattributes.cxx
index be3ab68..49060f0 100644
--- a/vcl/source/font/fontattributes.cxx
+++ b/vcl/source/font/fontattributes.cxx
@@ -93,7 +93,18 @@ bool 
FontAttributes::CompareDeviceIndependentFontAttributes(const FontAttributes
  }

  FontAttributes::FontAttributes()
-    : mnWidth ( 0 )
+    : meWeight(WEIGHT_DONTKNOW)
+    , meItalic(ITALIC_DONTKNOW)
+    , meFamily(FAMILY_DONTKNOW)
+    , mePitch(PITCH_DONTKNOW)
+    , meWidthType(WIDTH_DONTKNOW)
+    , mbSymbolFlag(false)
+    , mnQuality(0)
+    , mbOrientation(false)
+    , mbDevice(false)
+    , mbSubsettable(false)
+    , mbEmbeddable(false)
+    , mnWidth ( 0 )
      , mnOrientation( 0 )
      , mnAscent( 0 )
      , mnDescent( 0 )
[...]

Tools like UBSan or Valgrind's memcheck started to complain about reads of uninitialized members after a series of commits that merged font-related structs in VCL together. What looked fishy is that those members had not been default-initialized in the original structs, the number of setter calls had not changed, and yet the code started to grow uninitialized reads of the members. Without a clear understanding of what was going on, we were reluctant to blindly default-initialize those members now, as it might hide problems (at least from the eyes of UBSan and Valgrind) instead of fixing them.

Now, as I understand, Chris is going to revert those merges, as he came to the conclusion that they went in the wrong direction after all, and I assume that will obsolete the above potentially problematic commit anyway.
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to