Use CStr::from_bytes_until_nul to read rdkafka config #705
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.
Rebased version of #671 as per the discussion in #688 (forgot to re-open before I pushed the updated branch). Original PR text below
Commit 353812f replaced the more finicky
CStr::from_bytes_with_nul
withString::from_utf8_lossy
.That eliminated a panic but the returned Rust string now contained NUL bytes. This might have accidentally worked in FFI APIs that take C strings, but it fails when such a string is passed to a Rust API, such as integer parsing in
stream_consumer.rs:217
.The newer
CStr::from_bytes_until_nul
functionIt does return an error when there is no NUL byte in the input slice.
While it would be possible to fall back to
String::from_utf8_lossy
in that case, I'm not sure that would be a good idea. If we are in that situation, librdkafka clearly has messed something up completely. The contents of the buffer are then more likely complete garbage.