Return an owned String from cstr_arg#249
Merged
Merged
Conversation
cstr_arg returned a &str with an unbounded lifetime detached from the C pointer it borrowed, so a future caller that stashed the value past the FFI call would compile but use freed memory. Return an owned String so the borrow checker can no longer be fooled. Signed-off-by: Lars Erik Wik <lars.erik.wik@northern.tech> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
cstr_argreturned a&strwith an unbounded lifetime detached from the C pointer it borrows. It's sound today (every caller consumes the value within the FFI call), but a future edit that stashed the result past the call would compile and use freed memory. Returning an ownedStringremoves the lifetime so the borrow checker can catch such misuse. Callers updated; behavior unchanged.🤖 Generated with Claude Code