Page MenuHomeFreeBSD

rtld: Fix segfault in direct exec mode
ClosedPublic

Authored by rstone on Jan 2 2020, 4:08 PM.
Tags
None
Referenced Files
F82033795: D23008.id66252.diff
Wed, Apr 24, 8:02 PM
Unknown Object (File)
Feb 15 2024, 10:08 PM
Unknown Object (File)
Feb 4 2024, 4:37 AM
Unknown Object (File)
Dec 28 2023, 12:09 AM
Unknown Object (File)
Dec 22 2023, 10:58 PM
Unknown Object (File)
Oct 3 2023, 3:30 AM
Unknown Object (File)
Jun 29 2023, 2:53 AM
Unknown Object (File)
Jun 29 2023, 2:49 AM
Subscribers

Details

Summary

When rtld is directly executed with arguments, it has to move the
program arguments, environment and elf aux data up a few slots to
remove its own arguments before the process being executed sees
them. When copying the environment, rtld was incorrectly testing
whether the location about to be written to currently contained
NULL, when was supposed to check whether it had just copied the
NULL terminator of the environment string. This had the result
that the ELF aux data was mostly treated as environment variables,
and rtld would quickly crash when it tried to access required
ELF aux data that it didn't think was present.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 28440
Build 26509: arc lint + arc unit