You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by "martin goodall (Jira)" <xe...@xml.apache.org> on 2019/10/31 15:18:00 UTC

[jira] [Commented] (XERCESC-2179) access violation in win32transservice.cpp with 64 bit compile

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

martin goodall commented on XERCESC-2179:
-----------------------------------------

see attached suggested fix (find mrg). Also note, the lengths passed into some functions need to include the 1 byte null terminator, according to MS documentation. Not knowing the MS internals, if the MS library was to copy the memory to another structure, based on the length, it would not copy the NULL terminator if it was not included in the length. This could cause subsequent issues if the MS library then performed string operations on the new buffer....basically, best to follow how the documentation says to call the functions.

The symptoms of this bug is very random segs, because the memory that got overwritten was occasionally the base pointer for the hashed memory operations.

> 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
>            Priority: Blocker
>         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-unsubscribe@xerces.apache.org
For additional commands, e-mail: c-dev-help@xerces.apache.org