-
Notifications
You must be signed in to change notification settings - Fork 17.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
runtime: fix segfault due to missing argv on musl-linux c-archive #69325
base: master
Are you sure you want to change the base?
Conversation
This change fixes a segmentation fault that occurs on musl-based systems when using c-archive (or c-shared with LD_PRELOAD). The issue was caused by uninitialized argv and envp, which led to crashes at runtime. This fix ensures that both argv and envp are correctly initialized, preventing the segmentation fault. While this fix addresses crashes due to missing argv and envp, it does not address the error described in issue golang#54805, where a c-shared library loaded with dlopen triggers an error related initial-exec access to TLS objects [1] in a dynamically loaded library. [1]: http://git.musl-libc.org/cgit/musl/commit/?id=5c2f46a214fceeee3c3e41700c51415e0a4f1acd Fixes golang#13492
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
This PR (HEAD: cbc1cd8) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/610837. Important tips:
|
Message from Gopher Robot: Patch Set 1: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
Message from Gopher Robot: Patch Set 1: Congratulations on opening your first change. Thank you for your contribution! Next steps: Most changes in the Go project go through a few rounds of revision. This can be During May-July and Nov-Jan the Go project is in a code freeze, during which Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
Message from Ian Lance Taylor: Patch Set 1: (4 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
This PR (HEAD: 02fa1b3) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/610837. Important tips:
|
Message from Adam Benkhassen: Patch Set 2: (5 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
Message from Adam Benkhassen: Patch Set 2: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
Message from Ian Lance Taylor: Patch Set 3: (7 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
This PR (HEAD: 37d5d2e) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/610837. Important tips:
|
This PR (HEAD: a79a4ea) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/610837. Important tips:
|
Message from Adam Benkhassen: Patch Set 5: (7 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
This PR (HEAD: 992cc9f) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/610837. Important tips:
|
Message from Ian Lance Taylor: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
Message from Adam Benkhassen: Patch Set 6: (1 comment) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
Message from Ian Lance Taylor: Patch Set 6: (7 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
This PR (HEAD: d7e52fb) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/610837. Important tips:
|
This PR (HEAD: 29d3054) has been imported to Gerrit for code review. Please visit Gerrit at https://go-review.googlesource.com/c/go/+/610837. Important tips:
|
Message from Adam Benkhassen: Patch Set 8: (7 comments) Please don’t reply on this GitHub thread. Visit golang.org/cl/610837. |
This change fixes a segmentation fault that occurs on musl-based systems
when using c-archive (or c-shared with LD_PRELOAD). The issue was caused
by uninitialized argv and envp, which led to crashes at runtime.
This fix ensures that both argv and envp are correctly initialized,
preventing the segmentation fault.
While this fix addresses crashes due to missing argv and envp, it does not
address the error described in issue #54805, where a c-shared library
loaded with dlopen triggers an error related to initial-exec access to TLS
objects 1 in a dynamically loaded library.
Fixes #13492