[
https://issues.apache.org/jira/browse/PROTON-488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Cliff Jansen updated PROTON-488:
--------------------------------
Attachment: PROTON-488-0.patch
The 'z' encoding type for strings is used inconsistently in variadic function
calls: sometimes passed as a pn_bytes_t struct, sometimes as the individual
parts of the struct.
As luck would have it, the two look the same on the stack to most compilers,
but not for Windows C++ 64 bit.
The fix is either to always pass the pn_bytes_t struct and consume it with a
single va_arg() call, or to always pass the size_t and char* components
separately and consume them via two sequential va_arg() calls.
This workaround does the latter, and by searching the code, it appears just the
one place needs fixing.
It is arguable that the former is the more symmetric solution with how the
pn_bytes_t struct is used on input, so the final solution may go that way.
Next step... code review.
> Windows 7 64-bit VS2010 qpid-proton Crash on Startup with Send / Recv
> Application
> ---------------------------------------------------------------------------------
>
> Key: PROTON-488
> URL: https://issues.apache.org/jira/browse/PROTON-488
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c
> Affects Versions: 0.6
> Environment: Windows 7 64-bit VS 2010
> Reporter: Frank Quinn
> Assignee: Cliff Jansen
> Priority: Critical
> Attachments: PROTON-488-0.patch, qpid-proton-win64-send-crash.png
>
>
> Steps to recreate:
> 1. Grab latest 0.6 tarball
> 2. Start up Visual Studio x64 Win64 Command Prompt (2010) and run "cmake ."
> to generate the visual studio files
> 3. Open Up the newly created Proton.sln in VS2010, right click on qpid-proton
> and add the path to python to executable directories
> 4. In the configuration manager, select qpid-proton and select active
> configuration to be Debug, then select "Add" to add x64 support, copying
> win32 configuration in the process.
> 5. Select qpid-proton properties and remove the hard coded /machine:X86 extra
> command lines in Linker -> Command Line (MACHINE:X64 should already be in the
> command line above so no need to add here)
> 6. Right click on qpid-proton and select build
> Repeat steps 3-6 for send / recv applications. When you run recv, then run
> send, you'll get a crash with the (soon to be attached) trace.
> Cheers,
> Frank
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)