1. 29 Sep, 2020 2 commits
  2. 21 Sep, 2020 3 commits
  3. 18 Sep, 2020 12 commits
  4. 17 Sep, 2020 9 commits
  5. 14 Sep, 2020 1 commit
    • Niklas Gürtler's avatar
      Make dependencies to fontconfig and freetype optional and explicit. · f91c203b
      Niklas Gürtler authored
      Added meson features for explicitly enabling or disabling the dependencies freetype and fontconfig such that they won't be used even if present on the system.
      The meson option use_fontconfig was changed to fontconfig with these possible values:
      * 'enabled' (equivalent to old use_fontconfig=true)
      * 'auto' (equivalent to old use_fontconfig=false)
      * 'disabled' (equivalent to old use_fontconfig=false AND report an error if fontconfig is required on this system).
      f91c203b
  6. 12 Sep, 2020 10 commits
  7. 10 Sep, 2020 1 commit
    • stbergmann's avatar
      Let get_items_log_attrs take the start-of-text offset into account · 42e1738b
      stbergmann authored
      ...when interpreting item->offset values.
      
      I ran into this when executing tests of recent LibreOffice master with ASan on
      Fedora 32 (with pango-1.44.7-2.fc32.x86_64), where one of the tests renders
      various dialogs with a Tamil localization and failed with
      
      > ==97247==ERROR: AddressSanitizer: SEGV on unknown address 0x60b000210006 (pc 0x7fd6c5b22b54 bp 0x61d0004b4150 sp 0x7fff107a0d18 T0)
      > ==97247==The signal is caused by a READ memory access.
      >  #0 in g_utf8_get_char at ../glib/gutf8.c:319:37 (/lib64/libglib-2.0.so.0 +0x85b54)
      >  #1 in break_indic at ../pango/break-indic.c:119:17 (/lib64/libpango-1.0.so.0 +0x1076d)
      >  #2 in break_script at ../pango/break.c:1896:7 (/lib64/libpango-1.0.so.0 +0x1076d)
      >  #3 in tailor_break at ../pango/break.c:1606:9 (/lib64/libpango-1.0.so.0 +0x147db)
      >  #4 in pango_tailor_break at ../pango/break.c:1774:7 (/lib64/libpango-1.0.so.0 +0x147db)
      >  #5 in get_items_log_attrs at ../pango/pango-layout.c:4032:7 (/lib64/libpango-1.0.so.0 +0x2729c)
      >  #6 in pango_layout_check_lines at ../pango/pango-layout.c:4289:7 (/lib64/libpango-1.0.so.0 +0x2729c)
      >  #7 in pango_layout_get_extents_internal at ../pango/pango-layout.c:2623:3 (/lib64/libpango-1.0.so.0 +0x29068)
      >  #8 in gtk_label_get_measuring_layout at /usr/src/debug/gtk3-3.24.22-1.fc32.x86_64/gtk/gtklabel.c:3376:3 (/lib64/libgtk-3.so.0 +0x2454d0)
      [...]
      
      From some debugging, it smells like `pango_layout_check_lines` calls
      `pango_itemize_with_base_dir` to compute `state.items` that are relative to the
      beginning of `layout->text`, but then passes `state.items` together with the
      offset'ed `start` into `get_items_log_attrs`, so that the latter misinterpreted
      the items' locations relative to the offset'ed start.
      
      Just adding
      
            g_assert (item->offset <= length);
            g_assert (item->length <= length - item->offset);
      
      to the original `get_items_log_attrs` would make various tests in the `meson
      test` suite fail, but which pass again with the complete fix, matching the above
      speculation.
      42e1738b
  8. 09 Sep, 2020 2 commits