Skip to content

Invalid Memory Access in Native.invokeInt() #520

@mlfreeman2

Description

@mlfreeman2

I've found an apparent regression between JNA 4.1 and 4.2 when used in a 32 bit JRE on Windows 7 x64.

Attempting to get the "Windows" property of the "Shell.Application" COM object works just fine with JNA 4.1 but fails with "Invalid memory access" on JNA 4.2
The stack trace of the "Invalid memory access" error points to JNA's native code side.

System specs:
--- Windows 7 SP 1 64 bit
--- IE 11
--- Java 7u67 32 bit (1.7.0_67)

I created a discussion thread on the JNA Google Group that has an attached sample that contains the minimum required code to show the issue ("JNAProblemDemo.java").

GitHub won't let me attach the files here.

I ran it inside a generic Java Application project in Eclipse. (Please open one IE window first)
When the JNA 4.1 JARs are attached to the project it works just fine.
When the JNA 4.2 JARs are attached to the project it crashes.

The Google Group discussion thread also has attached what was printed to Eclipse's console from both runs ("4.1_eclipse_console.txt" and "4.2_eclipse_console.txt")

I don't know if it means anything (or could be related), but I noticed that the Windows 32 bit jnidispatch.dll shrunk nearly 130 KB from JNA 4.1 to JNA 4.2.
It was approx 227,000 bytes in JNA 4.1 and approx 103,000 bytes in JNA 4.2.
Could something have been left out?

Google Group Discussion Thread Link: https://groups.google.com/forum/#!topic/jna-users/5w8s8T6yFl0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions