QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 669|回复: 2

fontconfig中的BUG

[复制链接]
发表于 2005-4-30 14:02:40 | 显示全部楼层 |阅读模式
最近发现fontconfig中有个BUG导致打开KDE控制中心字体安装程序异常退出。

BUG在 fontconfig-2.2.3/src/fccfg.c中

void
FcConfigAppFontClear (FcConfig            *config)
{
    FcConfigSetFonts (config, 0, FcSetApplication);
}

void
FcConfigSetFonts (FcConfig        *config,
                  FcFontSet        *fonts,
                  FcSetName        set)
{
    if (config->fonts[set])
        FcFontSetDestroy (config->fonts[set]);
/*---------------------------------------------------------*/
/* Add by Firefly([email protected]) */
    #define        ST_ITALIC      0
    #define        ST_BOLD        1
    #define        ST_BOLD_ITALIC 2
    FcBool    scalable;
    FcPattern *pat;
    FcChar8   *family;
    int slant, weight;
    int f;

    for (f = 0; f < fonts->nfont; f++) //BUG: FcConfigSetFonts (config, 0, FcSetApplication);  这里 fonts为0 空指针错误!
    {

    .......
};

解决方法:
void
FcConfigSetFonts (FcConfig        *config,
                  FcFontSet        *fonts,
                  FcSetName        set)
{
    if (config->fonts[set])
        FcFontSetDestroy (config->fonts[set]);
/*---------------------------------------------------------*/
/* Add by Firefly([email protected]) */
    #define        ST_ITALIC      0
    #define        ST_BOLD        1
    #define        ST_BOLD_ITALIC 2
    FcBool    scalable;
    FcPattern *pat;
    FcChar8   *family;
    int slant, weight;
    int f;

    if (fonts == 0) { //在这里加fonts值的判断
        config->fonts[set] = fonts;
        return;
    }

    for (f = 0; f < fonts->nfont; f++)
    {

    .......
};
发表于 2005-4-30 14:41:22 | 显示全部楼层
原来如些
回复

使用道具 举报

发表于 2005-4-30 20:31:10 | 显示全部楼层
已修正,并打上了firefly的允许1%漏字的补丁,请在下面下载:
http://www.magiclinux.org/people/kanker/os/rpms/fontconfig-2.2.3-8mgc.i686.rpm
http://www.magiclinux.org/people/kanker/os/rpms/fontconfig-devel-2.2.3-8mgc.i686.rpm

源码包:
http://www.magiclinux.org/people/kanker/os/srpms/fontconfig-2.2.3-8mgc.src.rpm
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-26 09:35 , Processed in 0.043792 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表