Skip to content

Detecting GLIBC version (DTLS SIGSEGV). #1322

@InverseRE

Description

@InverseRE

The issue was reported before:
#914
#1267
#1170

But seems like, neither of the solutions were implemented.

The main problem here is that the LeakSan can mistakenly detect the glibc version. It detects 2.19 for the real glibc of version 2.25 or higher.
And that causes SIGSEGV later in ScanRangeForPointers function from lsan_common.cc (because DTLS range is illegal).
The condition in DTLS_on_tls_get_addr() function can be false positive: sometimes ((tls_beg % 4096) == sizeof(Glibc_2_19_tls_header)) evaluates to true for pointers from glibc 2.25.

I kindly ask you to do something to avoid these annoying crashes. The LeakSan's code suggests gnu_get_libc_version() in order to limit the supported glibc versions :)

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