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

nsysnet: Check for null timeout in select call #1324

Merged
merged 1 commit into from
Sep 2, 2024

Conversation

deReeperJosh
Copy link
Contributor

@deReeperJosh deReeperJosh commented Sep 2, 2024

After bisecting an error with Skylanders Superchargers and Imaginators, I found that after this commit bab1616 was added, the nsysnet select method was being called with a non-null write fdset, but a null timeout. I have added a null check to the code to return early if this timeOut is null. Fixes #1321

@Exzap
Copy link
Member

Exzap commented Sep 2, 2024

Thanks for tracing this down to select(). I am not happy with the implementation because, according to man pages, a NULL timeout is an infinite timeout. This is also doesn't simulate a zero timeout and instead quits right away before checking any of the sockets. Whether Wii U follows any of these behaviors is another question.

But at the end of the day this is acceptable as a workaround and our select() implementation is all sorts of hacky already anyway. So I will merge this as-is and look into fixing up the select implementation when I get a chance. Thanks again for looking into this!

@Exzap Exzap merged commit b069906 into cemu-project:main Sep 2, 2024
5 checks passed
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

Successfully merging this pull request may close these issues.

Skylanders: SuperChargers and Imaginators are still crashing on POP initialization with Cemu 2.1
2 participants