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

Release v1.8.1 #27

Merged
merged 7 commits into from
Dec 20, 2024
Merged

Release v1.8.1 #27

merged 7 commits into from
Dec 20, 2024

Conversation

TrentDaniel
Copy link
Contributor

@TrentDaniel TrentDaniel commented Dec 19, 2024

Hotfix for go runtime cgo unpinned go pointers issues.

TrentDaniel and others added 7 commits December 13, 2024 14:29
links against CCSMP, it treats all opaque pointers as uintptrs
(effectively longs) instead of as void pointers, except for
solClient_opaquePtr_pt. I couldn't figure out how to get around
solClient_opaquePtr_pt because certain CCSMP functions like
solClient_msg_getBinaryAttachmentPtr require a pointer to an opaque
pointer. This was all done to avoid the cgo runtime from panicking when
it does a runtime check of a C/Go boundary and believes that the 'void
*' type that the opaque pointers used to be typedef'd to was an unpinned
pointer. As mentioned, the change to the typdef of opaque pointers in
solClient.h will prevent the cgo runtime from panicking since it will
evaluate the opaque pointers as longs/ints instead of unpinned
references. It's unclear whether or not the solClient_opaquePtr_pt will
become a problem in the future, but it is actually pointing to data
whereas the other solClient_opaque*_pt types are not, which the cgo
runtime should be able to discern. The other changes made in this commit
were in response to the typdef change, and isolating more memory
allocation of configuration structs like the sessionCreateFuncInfo to C
in order to mitigate the risk of bad references being accessed by CCSMP.
EBP-383: Fix runtime cgo panic by changing CCSMP opaque pointer typdefs
@oodigie oodigie merged commit 9ca2190 into SolaceProducts:main Dec 20, 2024
2 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.

2 participants