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

SecurityAttribute::allow_everyone_connect doesn't work on Windows as expected #37

Open
ancwrd1 opened this issue Feb 2, 2023 · 0 comments

Comments

@ancwrd1
Copy link

ancwrd1 commented Feb 2, 2023

I have two IPC endpoints: the server part is a system service which calls Endpoint::new and then endpoint.set_security_attributes(SecurityAttributes::empty().allow_everyone_connect().

The client part is a user-level app which does read/write to it. An attempt to write to this endpoint from the client causes "Access denied" system error.
The problem goes away if I use allow_everyone_create and the code is guarded like this:

            if cfg!(windows) {
                endpoint.set_security_attributes(SecurityAttributes::allow_everyone_create()?);
            } else {
                endpoint.set_security_attributes(SecurityAttributes::empty().allow_everyone_connect()?);
            }

The only difference as far as I can see is FILE_WRITE_DATA vs GENERIC_WRITE.

P.S. Another thing I noticed is that the API around SecurityAttributes is not very consistent: some methods are static, others require &self parameter.

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