Skip to content

Comments

fix: rust alert getter should not modify#5756

Open
lrstewart wants to merge 1 commit intoaws:mainfrom
lrstewart:alert2
Open

fix: rust alert getter should not modify#5756
lrstewart wants to merge 1 commit intoaws:mainfrom
lrstewart:alert2

Conversation

@lrstewart
Copy link
Contributor

@lrstewart lrstewart commented Feb 21, 2026

Goal

Make Connection::alert non-mutating, since it takes a non-mut reference.

Why

Connection::alert can currently violate the borrow rules, which is dangerous. It also blocks reporting the error from the bindings: #5754

How

Add a private alternative "s2n_connection_peek_alert" C method that retrieves the alert without modifying the connection in any way. Swap that method into the bindings.

Callouts

This is arguably a behavior change, if a customer was relying on Connection::alert modifying the connection. But customers shouldn't expect a &self method to modify self, so this change should be way less risky than changing Connection::alert to take a &mut self.

Testing

Added C unit tests.

Related

#5754

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@github-actions github-actions bot added the s2n-core team label Feb 21, 2026
@lrstewart lrstewart marked this pull request as ready for review February 21, 2026 07:54

int s2n_connection_peek_alert(struct s2n_connection *conn)
{
POSIX_ENSURE_REF(conn);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does this have to be a new API? Can we just fix the behavior of the original s2n_connection_get_alert?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants