Skip to content

[casr-afl] Possible bug in CASR report generation for cases when ASAN hard_rss_limit_mb limit is reached #253

@niksankin

Description

@niksankin

When running casr-afl on testcases that cause the tested program to trigger ASAN hard rss limit, I got this error:

~$ ASAN_OPTIONS="detect_leaks=0:abort_on_error=1:symbolize=0:hard_rss_limit_mb=100"  ./casr-afl -i ./in -o ./out -- /some/program @@
11:28:47 [INFO] Analyzing 3 files...
11:28:47 [INFO] Generating CASR reports...
11:28:47 [INFO] Using 3 threads
11:28:48 [INFO] Deduplicating CASR reports...
Error: Error: All 3 CASR reports are corrupted

It may be some bug in ASAN log parser that is triggered by ASAN logs in this form:

==2446==AddressSanitizer: hard rss limit exhausted (100Mb vs 103Mb)
==2446==Process memory map follows:
        0x00007fff7000-0x00008fff7000
        0x00008fff7000-0x02008fff7000
        0x02008fff7000-0x10007fff8000
        0x55877f410000-0x55877f4b7000   /some/program
        0x55877f4b7000-0x55877fd20000   /some/program
        0x55877fd20000-0x55877fe26000   /some/program
        0x55877fe26000-0x55877fe29000   /some/program
        0x55877fe29000-0x55877feb1000   /some/program
        0x55877feb1000-0x5587800b2000
        0x600000000000-0x640000000000
        0x640000000000-0x640000003000
        0x7fc4f551e000-0x7fc4f7531000
        0x7fc4f7531000-0x7fc4f7d31000
        0x7fc4f7d31000-0x7fc4f809d000
        0x7fc4f809d000-0x7fc4f80a0000   /usr/lib64/libz.so.1.2.11
        0x7fc4f80a0000-0x7fc4f80ae000   /usr/lib64/libz.so.1.2.11
        0x7fc4f80ae000-0x7fc4f80b4000   /usr/lib64/libz.so.1.2.11
        0x7fc4f80b4000-0x7fc4f80b5000   /usr/lib64/libz.so.1.2.11
        0x7fc4f80b5000-0x7fc4f80b6000   /usr/lib64/libz.so.1.2.11
        0x7fc4f80b6000-0x7fc4f80b7000
        0x7fc4f80b7000-0x7fc4f80c4000   /usr/lib64/libm.so.6
        0x7fc4f80c4000-0x7fc4f8134000   /usr/lib64/libm.so.6
        0x7fc4f8134000-0x7fc4f8190000   /usr/lib64/libm.so.6
        0x7fc4f8190000-0x7fc4f8191000   /usr/lib64/libm.so.6
        0x7fc4f8191000-0x7fc4f8192000   /usr/lib64/libm.so.6
        0x7fc4f8192000-0x7fc4f822b000   /usr/lib64/libstdc++.so.6.0.29
        0x7fc4f822b000-0x7fc4f8337000   /usr/lib64/libstdc++.so.6.0.29
        0x7fc4f8337000-0x7fc4f83aa000   /usr/lib64/libstdc++.so.6.0.29
        0x7fc4f83aa000-0x7fc4f83b7000   /usr/lib64/libstdc++.so.6.0.29
        0x7fc4f83b7000-0x7fc4f83b8000   /usr/lib64/libstdc++.so.6.0.29
        0x7fc4f83b8000-0x7fc4f83bb000
        0x7fc4f83bb000-0x7fc4f83e3000   /usr/lib64/libc.so.6
        0x7fc4f83e3000-0x7fc4f8558000   /usr/lib64/libc.so.6
        0x7fc4f8558000-0x7fc4f85b0000   /usr/lib64/libc.so.6
        0x7fc4f85b0000-0x7fc4f85b1000   /usr/lib64/libc.so.6
        0x7fc4f85b1000-0x7fc4f85b5000   /usr/lib64/libc.so.6
        0x7fc4f85b5000-0x7fc4f85b7000   /usr/lib64/libc.so.6
        0x7fc4f85b7000-0x7fc4f85c4000
        0x7fc4f85c4000-0x7fc4f85c7000   /usr/lib64/libgcc_s-11-20231218.so.1
        0x7fc4f85c7000-0x7fc4f85d9000   /usr/lib64/libgcc_s-11-20231218.so.1
        0x7fc4f85d9000-0x7fc4f85dc000   /usr/lib64/libgcc_s-11-20231218.so.1
        0x7fc4f85dc000-0x7fc4f85dd000   /usr/lib64/libgcc_s-11-20231218.so.1
        0x7fc4f85dd000-0x7fc4f85de000   /usr/lib64/libgcc_s-11-20231218.so.1
        0x7fc4f85de000-0x7fc4f85df000   /usr/lib64/libgcc_s-11-20231218.so.1
        0x7fc4f85df000-0x7fc4f85e0000   /usr/lib64/libprotobuf-c.so.1.0.0
        0x7fc4f85e0000-0x7fc4f85e6000   /usr/lib64/libprotobuf-c.so.1.0.0
        0x7fc4f85e6000-0x7fc4f85e7000   /usr/lib64/libprotobuf-c.so.1.0.0
        0x7fc4f85e7000-0x7fc4f85e8000   /usr/lib64/libprotobuf-c.so.1.0.0
        0x7fc4f85e8000-0x7fc4f85e9000   /usr/lib64/libprotobuf-c.so.1.0.0
        0x7fc4f85e9000-0x7fc4f85ea000   /usr/lib64/libprotobuf-c.so.1.0.0
        0x7fc4f85ea000-0x7fc4f85ec000
        0x7fc4f85ec000-0x7fc4f85f1000   /usr/lib64/libnghttp2.so.14.20.1
        0x7fc4f85f1000-0x7fc4f8606000   /usr/lib64/libnghttp2.so.14.20.1
        0x7fc4f8606000-0x7fc4f8612000   /usr/lib64/libnghttp2.so.14.20.1
        0x7fc4f8612000-0x7fc4f8615000   /usr/lib64/libnghttp2.so.14.20.1
        0x7fc4f8615000-0x7fc4f8616000   /usr/lib64/libnghttp2.so.14.20.1
        0x7fc4f8616000-0x7fc4f86c3000   /usr/lib64/libcrypto.so.3.0.7
        0x7fc4f86c3000-0x7fc4f891f000   /usr/lib64/libcrypto.so.3.0.7
        0x7fc4f891f000-0x7fc4f89ec000   /usr/lib64/libcrypto.so.3.0.7
        0x7fc4f89ec000-0x7fc4f89ed000   /usr/lib64/libcrypto.so.3.0.7
        0x7fc4f89ed000-0x7fc4f8a43000   /usr/lib64/libcrypto.so.3.0.7
        0x7fc4f8a43000-0x7fc4f8a46000   /usr/lib64/libcrypto.so.3.0.7
        0x7fc4f8a46000-0x7fc4f8a49000
        0x7fc4f8a49000-0x7fc4f8aa3000   /usr/lib64/libpython3.9.so.1.0
        0x7fc4f8aa3000-0x7fc4f8c58000   /usr/lib64/libpython3.9.so.1.0
        0x7fc4f8c58000-0x7fc4f8d4c000   /usr/lib64/libpython3.9.so.1.0
        0x7fc4f8d4c000-0x7fc4f8d4d000   /usr/lib64/libpython3.9.so.1.0
        0x7fc4f8d4d000-0x7fc4f8d53000   /usr/lib64/libpython3.9.so.1.0
        0x7fc4f8d53000-0x7fc4f8d8a000   /usr/lib64/libpython3.9.so.1.0
        0x7fc4f8d8a000-0x7fc4f8dac000
        0x7fc4f8dac000-0x7fc4f8dba000   /usr/lib64/libevent-2.1.so.7.0.1
        0x7fc4f8dba000-0x7fc4f8dee000   /usr/lib64/libevent-2.1.so.7.0.1
        0x7fc4f8dee000-0x7fc4f8e01000   /usr/lib64/libevent-2.1.so.7.0.1
        0x7fc4f8e01000-0x7fc4f8e02000   /usr/lib64/libevent-2.1.so.7.0.1
        0x7fc4f8e02000-0x7fc4f8e04000   /usr/lib64/libevent-2.1.so.7.0.1
        0x7fc4f8e04000-0x7fc4f8e05000   /usr/lib64/libevent-2.1.so.7.0.1
        0x7fc4f8e05000-0x7fc4f8e23000   /usr/lib64/libssl.so.3.0.7
        0x7fc4f8e23000-0x7fc4f8e80000   /usr/lib64/libssl.so.3.0.7
        0x7fc4f8e80000-0x7fc4f8e9d000   /usr/lib64/libssl.so.3.0.7
        0x7fc4f8e9d000-0x7fc4f8ea7000   /usr/lib64/libssl.so.3.0.7
        0x7fc4f8ea7000-0x7fc4f8eab000   /usr/lib64/libssl.so.3.0.7
        0x7fc4f8eab000-0x7fc4f8ecf000   /usr/lib64/libasan.so.6.0.0
        0x7fc4f8ecf000-0x7fc4f8fa6000   /usr/lib64/libasan.so.6.0.0
        0x7fc4f8fa6000-0x7fc4f8fd8000   /usr/lib64/libasan.so.6.0.0
        0x7fc4f8fd8000-0x7fc4f8fd9000   /usr/lib64/libasan.so.6.0.0
        0x7fc4f8fd9000-0x7fc4f8fdd000   /usr/lib64/libasan.so.6.0.0
        0x7fc4f8fdd000-0x7fc4f8fe0000   /usr/lib64/libasan.so.6.0.0
        0x7fc4f8fe0000-0x7fc4f9896000
        0x7fc4f9896000-0x7fc4f989a000
        0x7fc4f989a000-0x7fc4f989c000   /usr/lib64/ld-linux-x86-64.so.2
        0x7fc4f989c000-0x7fc4f98c2000   /usr/lib64/ld-linux-x86-64.so.2
        0x7fc4f98c2000-0x7fc4f98cd000   /usr/lib64/ld-linux-x86-64.so.2
        0x7fc4f98cd000-0x7fc4f98ce000
        0x7fc4f98ce000-0x7fc4f98d0000   /usr/lib64/ld-linux-x86-64.so.2
        0x7fc4f98d0000-0x7fc4f98d2000   /usr/lib64/ld-linux-x86-64.so.2
        0x7ffe68b20000-0x7ffe68b41000   [stack]
        0x7ffe68ba2000-0x7ffe68ba6000   [vvar]
        0x7ffe68ba6000-0x7ffe68ba8000   [vdso]
        0xffffffffff600000-0xffffffffff601000   [vsyscall]
==2446==End of process memory map.
Aborted

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions