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.
I was running the core_input_gamepad example program with a PS4 Controller and disconnected and reconnected the USB cable. The program crashed with a EXC_BAD_ACCESS (SIGSEGV). The SIGSEGV happens in core_input_gamepad.c when GetGamepadName returns a NULL (when the gamepad is disconnected) and TextIsEqual attempts to compare two strings with one of them a NULL. TextIsEqual uses strcmp which has undefined behaviour when one or both strings are NULL. It seemed like a good place to put a NULL check was in TextIsEqual. I think that when one of the strings being compared was NULL, returning false would be always the desired behaviour. Also I've returned false instead of the variable result because if one or both of the strings is NULL, you will always want to return false. Someone may change the default result variable to true, and then the check would break.
I've only tested this on macOS Big Sur Intel.