[ https://issues.apache.org/jira/browse/XERCESC-2179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16966698#comment-16966698 ]
martin goodall commented on XERCESC-2179: ----------------------------------------- the code is wrong - on a 64 bit platform, LPDWORD is a far dword which is 64 bits (I think we all agree). I think the thing that's wrong in the above text is that "unsigned int" (32 bits) was being used as the variable, not unsigned "unsigned long" (64 bits). unsigned int is 32 bits and platform dependent. seeĀ [https://docs.microsoft.com/en-us/cpp/cpp/data-type-ranges?view=vs-2019] which documents the lengths. Also at the end of the day, printf...sizeof() is pretty conclusive......as well as the code no longer segsĀ :) > 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