Подробности

[В начало]

Проблема в реализации № V0030

Краткое описание

Вызов FT_Get_PFR_Metrics для шрифта, не являющегося PFR-шрифтом, приводит к segmentation fault

Подробное описание

Согласно описанию функции FT_Get_PFR_Metrics,
If the input face is not a PFR, this function will return an error. However, in all cases, it will return valid values.

Также в в этом описании указано, что каждый из перечисленных ниже аргументов может быть NULL:
  • aoutline_resolution
  • ametrics_resolution
  • ametrics_x_scale
  • ametrics_y_scale

Однако, если вызвать FT_Get_PFR_Metrics для шрифта, не являющегося PFR-шрифтом (например, для FreeMono.ttf), и при этом хотя бы один из указанных выше аргументов равен NULL, будет segmentation fault. Прикреплённый пример демонстрирует данную проблему.

Раздел стандарта

Linux Standard Base Desktop Specification 3.2, Chapter 12. Libraries, 12.1 Interfaces for libfreetype, который ссылается на FreeType-2.1.10 API Reference, section "PFR Fonts"

Способ воспроизведения

  1. Распакуйте прикреплённый архив
  2. Скомпилируйте и скомпонуйте программу-пример, которая в нём содержится
  3. Запустите программу-пример следующим образом:
    ./ft_get_pfr_metrics FreeMono.ttf a b c d,
    где a, b, c и d - целые числа, по крайней мере, одно из которых равно 0.

Компонент

freetype 2.1.10 or later

Принято

freetype-devel mailing list, #49, 2008.12

Статус

Reported

[В начало]