[ 
https://issues.apache.org/jira/browse/XERCESC-2179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16966776#comment-16966776
 ] 

Scott Cantor commented on XERCESC-2179:
---------------------------------------

Martin, you keep believing incorrectly that LPDWORD is a pointer to a 64-bit 
data item. It is *not* pointing to 64 bits of data, that's a pointer to 32 bits 
of data.

unsigned int = 4
DWORD = 4
unsigned long = 4

See? All those are 4 bytes by your own testing. That's all the code is doing, 
passing pointers to these 4-byte objects around into LPDWORD parameters. That's 
correct code.

That doesn't mean there isn't a bug, or a crash, or that something you changed 
might have had an effect, but it wasn't this particular change.

> access violation in win32transservice.cpp with 64 bit compile
> -------------------------------------------------------------
>
>                 Key: XERCESC-2179
>                 URL: https://issues.apache.org/jira/browse/XERCESC-2179
>             Project: Xerces-C++
>          Issue Type: Bug
>          Components: DOM
>    Affects Versions: 3.2.2
>            Reporter: martin goodall
>            Assignee: Alberto Massari
>            Priority: Blocker
>             Fix For: 3.2.3
>
>         Attachments: Win32TransService.cpp
>
>
> calls to ::Reg... to get registry info are passing in stack variables that 
> are 8 bytes long into functions that overwrite 16 bytes, causing memory 
> overwrite and very random segs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: c-dev-h...@xerces.apache.org

Reply via email to