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 "Alberto Massari (JIRA)" <xe...@xml.apache.org> on 2015/09/07 11:18:45 UTC

[jira] [Resolved] (XERCESC-2051) Overlapping memcpy call

     [ https://issues.apache.org/jira/browse/XERCESC-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alberto Massari resolved XERCESC-2051.
--------------------------------------
    Resolution: Duplicate

> Overlapping memcpy call
> -----------------------
>
>                 Key: XERCESC-2051
>                 URL: https://issues.apache.org/jira/browse/XERCESC-2051
>             Project: Xerces-C++
>          Issue Type: Bug
>    Affects Versions: 3.1.2
>            Reporter: Hanno Böck
>            Priority: Minor
>         Attachments: xerces-c-overlapping-memcpy.diff
>
>
> When running the test suite with address sanitizer enabled it will report an overlapping memcpy call:
> < =================================================================
> < ==8236==ERROR: AddressSanitizer: memcpy-param-overlap: memory ranges [0x0000006678c0,0x0000006678ca) and [0x0000006678c2, 0x0000006678cc) overlap
> <     #0 0x7f1025853f24 (/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.2/libasan.so.1+0x2ff24)
> <     #1 0x7f1024df4bf8 in xercesc_3_1::XMLString::moveChars(unsigned short*, unsigned short const*, unsigned long) xercesc/util/XMLString.hpp:1446
> <     #2 0x7f1024e627eb in xercesc_3_1::XMLString::collapseWS(unsigned short*, xercesc_3_1::MemoryManager*) xercesc/util/XMLString.cpp:1813
> <     #3 0x44a098 in DOMTest::testUtilFunctions() src/DOM/DOMTest/DTest.cpp:5752
> <     #4 0x412865 in main src/DOM/DOMTest/DTest.cpp:984
> <     #5 0x7f10209b5f9f in __libc_start_main (/lib64/libc.so.6+0x1ff9f)
> <     #6 0x405848 (/tmp/xerces-c-3.1.2/tests/.libs/DOMTest+0x405848)
> < 
> < 0x0000006678c0 is located 0 bytes inside of global variable 'tempStr' from 'src/DOM/DOMTest/DTest.cpp' (0x6678c0) of size 8000
> < 0x0000006678c2 is located 2 bytes inside of global variable 'tempStr' from 'src/DOM/DOMTest/DTest.cpp' (0x6678c0) of size 8000
> < SUMMARY: AddressSanitizer: memcpy-param-overlap ??:0 ??
> < ==8236==ABORTING
> memcpy calls to overlapping memory areas are not allowed. memmove can be used in such instances. (I'll attach a patch that changes that, but I'd ask for it to be reviewed by someone familiar with the code and check whether the overlapping copying is really intended.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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