Skip to content

Fix overflow in count_uses#58

Open
marvinborner wants to merge 1 commit into
HigherOrderCO:mainfrom
marvinborner:main
Open

Fix overflow in count_uses#58
marvinborner wants to merge 1 commit into
HigherOrderCO:mainfrom
marvinborner:main

Conversation

@marvinborner
Copy link
Copy Markdown

Hi, cool project! While working on some larger program, I got a SEGFAULT:

==419558==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7dcd68fe4900 at pc 0x5585d30ef151 bp 0x7ffe63d09e10 sp 0x7ffe63d09e08
WRITE of size 8 at 0x7dcd68fe4900 thread T0
    #0 0x5585d30ef150 in count_uses /home/.../clang/./parse/count_uses.c:19:20
    #1 0x5585d30ec777 in parse_term_dup /home/.../clang/./parse/term/dup.c:201:16
    #2 0x5585d30ea052 in parse_term_atom /home/.../clang/./parse/term/_.c:7:12
    #3 0x5585d30e970a in parse_term /home/.../clang/./parse/term/_.c:40:25
...

Apparently you restricted the traversal stack in count_uses to 1024, which obviously fails on larger programs. I implemented a simple fix with an automatically growing cap, though let me know if this doesn't fit your style.

A minimal reproduction using a long string (1025 chars):

@main =
! x = 0;
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant