Comments (4)
I read this https://wiki.libsdl.org/SDL3/SDL_Event:
typedef union SDL_Event
{
/* [...]
Visual C++ will respect the push pack pragma and use 52 bytes (size of
SDL_TextEditingEvent, the largest structure for 32-bit and 64-bit
architectures) for this union, and GCC will use the alignment of the
largest datatype within the union, which is 8 bytes on 64-bit
architectures.
*/
Uint8 padding[128];
} SDL_Event;
My reading of this is, that SDL itself will generate events with a size of up-to 52bytes, but that you have to expect that in the future 128bytes could be filled.
The clashes with your definition of the SDL_Event
, which is at most 24bytes .
Basicly this: https://github.com/isXander/Controlify/blob/5d5f80dac3de16302c9e8543b868a187d592d9db/src/main/java/dev/isxander/controlify/controllermanager/SDLControllerManager.java#L66 asks SDL for an out-of-bounds write.
Closing this as questions should be directed to the google group.
from jna.
You may also notice in the same class you referenced that there is an event filter that only accepts joystick connection/disconnection event, so JNA never allocates more memory than those events.
from jna.
The problem is not what JNA does, but what the SDL runtime does. You are calling SDL_PollEvent
and essentially pass a pointer to a memory location. SDL is now free to write 128bytes to that pointer. BUT nothing is telling JNA to allocate enough memory to hold 128bytes. So even if native is only working on a structure with 24bytes, it will need to copy it around. As the event might change its shape anytime, native must copy the full structure and that in turn means, you have an out of bounds write.
from jna.
Thank you so much for the assistance and explanation regardless of the incorrect forum, after some testing it looks like this issue is now all resolved. Thank you again!
from jna.
Related Issues (20)
- Loading dll crashing + not up to date complation HOT 1
- IndexOutOfBoundsException in ELFSectionHeaders runnning on old IcedTea Java 8 version on ARMv7 HOT 7
- Monitor JNA's security posture with the Scorecard Action HOT 5
- Android Unable to load library from android-aarch64 HOT 1
- The free_callback function has a JNI weak global reference leak problem HOT 6
- loongarch64 need glibc2.36 HOT 29
- Consider adding M1 test on CI HOT 5
- Cannot run unsigned DLLs from user writeable PATH (windows) HOT 2
- Appveyor CI is broken HOT 3
- Enable RELRO HOT 4
- Collate License File Content HOT 1
- struct get different result with same code and process same data HOT 1
- JNA 7.0.0 Incompatible Native Library. HOT 1
- Please provide a method for getting the NativeLibrary instance from Library interface
- Very heavy lock contention under load
- Loading jnidispatch on Android 15 with 16 KB page size leads to crash
- this ratted me pc pls help
- The binary is not signed for version 5.14.0 HOT 1
- `linux-riscv64` was not synced in MANIFEST.MF on jna-5.14.0.jar
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jna.