Skip to content

Memory leak when calling select_family_by_name #262

Closed
@ginnyTheCat

Description

@ginnyTheCat

When being run using LeakSanitizer the following program is reported to leak memory. This oddly only happens on ubuntu (with fontconfig install from apt and even with a fontconfig build from main, maybe I compiled it wrong though idk) for me and not on my local machine (fedora).

use font_kit::source::SystemSource;

fn main() {
    let s = SystemSource::new();
    let font = s.select_family_by_name("serif").unwrap();
}
=================================================================
==109138==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 256 byte(s) in 1 object(s) allocated from:
    #0 0x56146dccaaef in malloc /rustc/llvm/src/llvm-project/compiler-rt/lib/lsan/lsan_interceptors.cpp:74:3
    #1 0x7fe5ee3737fc  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x227fc) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #2 0x7fe5ee377ed8  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x26ed8) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #3 0x7fe5ee386331  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x35331) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #4 0x7fe5ee235a6f  (/lib/x86_64-linux-gnu/libexpat.so.1+0xaa6f) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #5 0x7fe5ee236772  (/lib/x86_64-linux-gnu/libexpat.so.1+0xb772) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #6 0x7fe5ee237747  (/lib/x86_64-linux-gnu/libexpat.so.1+0xc747) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #7 0x7fe5ee239f70  (/lib/x86_64-linux-gnu/libexpat.so.1+0xef70) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #8 0x7fe5ee22f46e  (/lib/x86_64-linux-gnu/libexpat.so.1+0x446e) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #9 0x7fe5ee23c3cd in XML_ParseBuffer (/lib/x86_64-linux-gnu/libexpat.so.1+0x113cd) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #10 0x7fe5ee38083d  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x2f83d) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #11 0x7fe5ee38122c  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x3022c) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #12 0x7fe5ee381478  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x30478) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #13 0x7fe5ee384436  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x33436) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #14 0x7fe5ee235a6f  (/lib/x86_64-linux-gnu/libexpat.so.1+0xaa6f) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #15 0x7fe5ee236772  (/lib/x86_64-linux-gnu/libexpat.so.1+0xb772) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #16 0x7fe5ee237747  (/lib/x86_64-linux-gnu/libexpat.so.1+0xc747) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #17 0x7fe5ee239f70  (/lib/x86_64-linux-gnu/libexpat.so.1+0xef70) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #18 0x7fe5ee22f46e  (/lib/x86_64-linux-gnu/libexpat.so.1+0x446e) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #19 0x7fe5ee23c3cd in XML_ParseBuffer (/lib/x86_64-linux-gnu/libexpat.so.1+0x113cd) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #20 0x7fe5ee38083d  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x2f83d) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #21 0x7fe5ee38122c  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x3022c) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #22 0x7fe5ee3683b5  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x173b5) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #23 0x7fe5ee361751  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x10751) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #24 0x7fe5ee362f84 in FcConfigSubstituteWithPat (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x11f84) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #25 0x56146dcf12fd in font_kit::sources::fontconfig::fc::Pattern::config_substitute::h7dda7302f5a6b851 /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/font-kit-0.14.2/src/sources/fontconfig.rs:404:17
    #26 0x7fe5ee02a28a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #27 0x56146dcc6904 in _start (/abc/target/x86_64-unknown-linux-gnu/debug/abc+0xaa904) (BuildId: 6b43ccce9978bebb5c13f69b091cb57add85b7a4)

Objects leaked above:
0x510000000500 (256 bytes)

Indirect leak of 64 byte(s) in 2 object(s) allocated from:
    #0 0x56146dccad5e in calloc /rustc/llvm/src/llvm-project/compiler-rt/lib/lsan/lsan_interceptors.cpp:91:3
    #1 0x7fe5ee377e6f  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x26e6f) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #2 0x7fe5ee386331  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x35331) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #3 0x7fe5ee235a6f  (/lib/x86_64-linux-gnu/libexpat.so.1+0xaa6f) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #4 0x7fe5ee236772  (/lib/x86_64-linux-gnu/libexpat.so.1+0xb772) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #5 0x7fe5ee237747  (/lib/x86_64-linux-gnu/libexpat.so.1+0xc747) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #6 0x7fe5ee239f70  (/lib/x86_64-linux-gnu/libexpat.so.1+0xef70) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #7 0x7fe5ee22f46e  (/lib/x86_64-linux-gnu/libexpat.so.1+0x446e) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #8 0x7fe5ee23c3cd in XML_ParseBuffer (/lib/x86_64-linux-gnu/libexpat.so.1+0x113cd) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #9 0x7fe5ee38083d  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x2f83d) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #10 0x7fe5ee38122c  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x3022c) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #11 0x7fe5ee381478  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x30478) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #12 0x7fe5ee384436  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x33436) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #13 0x7fe5ee235a6f  (/lib/x86_64-linux-gnu/libexpat.so.1+0xaa6f) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #14 0x7fe5ee236772  (/lib/x86_64-linux-gnu/libexpat.so.1+0xb772) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #15 0x7fe5ee237747  (/lib/x86_64-linux-gnu/libexpat.so.1+0xc747) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #16 0x7fe5ee239f70  (/lib/x86_64-linux-gnu/libexpat.so.1+0xef70) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #17 0x7fe5ee22f46e  (/lib/x86_64-linux-gnu/libexpat.so.1+0x446e) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #18 0x7fe5ee23c3cd in XML_ParseBuffer (/lib/x86_64-linux-gnu/libexpat.so.1+0x113cd) (BuildId: 2a3ae4a996d521e6f1d4f95f4d1ea03549204262)
    #19 0x7fe5ee38083d  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x2f83d) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #20 0x7fe5ee38122c  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x3022c) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #21 0x7fe5ee3683b5  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x173b5) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #22 0x7fe5ee361751  (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x10751) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #23 0x7fe5ee362f84 in FcConfigSubstituteWithPat (/lib/x86_64-linux-gnu/libfontconfig.so.1+0x11f84) (BuildId: 9ea8985291d6ca9e904a796a5767d191039d813d)
    #24 0x56146dcf12fd in font_kit::sources::fontconfig::fc::Pattern::config_substitute::h7dda7302f5a6b851 /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/font-kit-0.14.2/src/sources/fontconfig.rs:404:17
    #25 0x7fe5ee02a28a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 42c84c92e6f98126b3e2230ebfdead22c235b667)
    #26 0x56146dcc6904 in _start (/abc/target/x86_64-unknown-linux-gnu/debug/abc+0xaa904) (BuildId: 6b43ccce9978bebb5c13f69b091cb57add85b7a4)

Objects leaked above:
0x502000025de0 (32 bytes)
0x502000025e40 (32 bytes)

SUMMARY: LeakSanitizer: 320 byte(s) leaked in 3 allocation(s).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions