Prevent segfault with parsing certain content in seigrc #7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've been running some instrumentation to try and identify the memory issue we've been discussing. With AddressSanitizer running, I'm seeing a crash with this backtrace:
#0 0x00007f49ad3f6bb4 in __msan_warning_noreturn ()
#1 0x00007f49ad477f6b in load_conf (filename=) at init.c:263
#2 0x00007f49ad4741b4 in init_config () at init.c:95
#3 0x00007f49ad47edf2 in main (argc=6, argv=0x7ffc75b85e38) at main.c:324
The problem with enumerating a string based on spaces is that if a line ends with a space, the next piece of code involves unallocated memory. Unfortunately, line 399 of the default .siegerc, contains a line ending in a space.
This PR prevents the use of unallocated memory in this scenario.