Guard calls to FT_Get_BDF_Property to avoid freetype jumping through null
pointer
This commit is contained in:
parent
3a30abdb84
commit
29d961a28e
|
@ -57,7 +57,13 @@
|
||||||
|
|
||||||
#if (FREETYPE_MINOR > 1 || (FREETYPE_MINOR == 1 && FREETYPE_PATCH >= 4))
|
#if (FREETYPE_MINOR > 1 || (FREETYPE_MINOR == 1 && FREETYPE_PATCH >= 4))
|
||||||
#include <freetype/ftbdf.h>
|
#include <freetype/ftbdf.h>
|
||||||
|
#include <freetype/ftmodule.h>
|
||||||
#define USE_FTBDF
|
#define USE_FTBDF
|
||||||
|
#define HAS_BDF_PROPERTY(f) ((f) && (f)->driver && \
|
||||||
|
(f)->driver->root.clazz->get_interface)
|
||||||
|
#define MY_Get_BDF_Property(f,n,p) (HAS_BDF_PROPERTY(f) ? \
|
||||||
|
FT_Get_BDF_Property(f,n,p) : \
|
||||||
|
FT_Err_Invalid_Argument)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -781,7 +787,7 @@ FcFreeTypeQuery (const FcChar8 *file,
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
BDF_PropertyRec prop;
|
BDF_PropertyRec prop;
|
||||||
rc = FT_Get_BDF_Property(face, "FOUNDRY", &prop);
|
rc = MY_Get_BDF_Property(face, "FOUNDRY", &prop);
|
||||||
if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_ATOM)
|
if(rc == 0 && prop.type == BDF_PROPERTY_TYPE_ATOM)
|
||||||
foundry = prop.u.atom;
|
foundry = prop.u.atom;
|
||||||
}
|
}
|
||||||
|
@ -789,7 +795,7 @@ FcFreeTypeQuery (const FcChar8 *file,
|
||||||
if (width == -1)
|
if (width == -1)
|
||||||
{
|
{
|
||||||
BDF_PropertyRec prop;
|
BDF_PropertyRec prop;
|
||||||
if (FT_Get_BDF_Property(face, "RELATIVE_SETWIDTH", &prop) == 0 &&
|
if (MY_Get_BDF_Property(face, "RELATIVE_SETWIDTH", &prop) == 0 &&
|
||||||
(prop.type == BDF_PROPERTY_TYPE_INTEGER ||
|
(prop.type == BDF_PROPERTY_TYPE_INTEGER ||
|
||||||
prop.type == BDF_PROPERTY_TYPE_CARDINAL))
|
prop.type == BDF_PROPERTY_TYPE_CARDINAL))
|
||||||
{
|
{
|
||||||
|
@ -811,7 +817,7 @@ FcFreeTypeQuery (const FcChar8 *file,
|
||||||
case 9: width = FC_WIDTH_ULTRAEXPANDED; break;
|
case 9: width = FC_WIDTH_ULTRAEXPANDED; break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (FT_Get_BDF_Property (face, "SETWIDTH_NAME", &prop) == 0 &&
|
else if (MY_Get_BDF_Property (face, "SETWIDTH_NAME", &prop) == 0 &&
|
||||||
prop.type == BDF_PROPERTY_TYPE_ATOM)
|
prop.type == BDF_PROPERTY_TYPE_ATOM)
|
||||||
{
|
{
|
||||||
static struct {
|
static struct {
|
||||||
|
|
Loading…
Reference in New Issue