Skip to content
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

max_reply_size does not account for Complex errors #36

Open
mkeeter opened this issue Jun 28, 2023 · 0 comments
Open

max_reply_size does not account for Complex errors #36

mkeeter opened this issue Jun 28, 2023 · 0 comments

Comments

@mkeeter
Copy link
Contributor

mkeeter commented Jun 28, 2023

When writing a function that returns a Complex error, the error data is returned by serializing it and copying it into the caller's memory.

Right now, we check that caller has provided a large enough buffer here, faulting the caller if they failed us.

However, the generated code for max_reply_size doesn't take Complex errors into account; it only checks the Ok return value.

Given this definition:

        "fancy_error": (
            reply: Result(
                ok: "()",
                err: Complex("FancyNetError"),
            ),
            encoding: Hubpack,
        ),

The generated REPLY_SIZE is simply

pub const FANCY_ERROR_REPLY_SIZE: usize =<() as hubpack::SerializedSize>::MAX_SIZE;

(and this constant is used in the generated max_reply_size).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant