Comments (5)
It's interesting that this problem can't really be caught by the undefined behavior sanitizer on x86/x64 despite the fact that it checks alignment violations:
x86 has sizeof(void*) = 4 alignof(double) = 4
x64 has sizeof(void*) = 8 alignof(double) = 8
And the problem only manifests when sizeof(void*) < alignof(double).
from pugixml.
A qemu image would help.
I suspect that this is specific to the way the tests are setup combined with the unaligned memory access not working. The tests override allocation functions but in doing so they violate the basic malloc contract because they return unaligned memory. This is done to catch single-byte buffer overflows on heap. This can create cases when pugixml accesses unaligned memory - I had these issues before with instrumentation that flags unaligned accesses like UB sanitizers.
from pugixml.
i'll prepare a small installation text and put the image somewhere on an free downloader website, but beware the sparc emulation is textmode only, very slow (costs serveral minutes to compile pugixml) but works
from pugixml.
uploaded the image+start description (pugi_sparc.txt) to depositfiles (seems to be the only free file hoster with ftp upload feature)
https://depositfiles.com/files/sj20aqwp0
press the "regular download" button, wait some seconds, solve the chapca, "download file in regular mode by browser"
from pugixml.
cmake 3.2.3 (build from source in 10h)
Wow. Thank you! I'm looking into this (btw pugixml does not require cmake - you can just do "make test" after git clone)
As I suspected, one of the issues is the test-only allocator; although even if I disable that I still get crashes somewhere further.
from pugixml.
Related Issues (20)
- Conflicting documentation for multiple top-level element nodes HOT 2
- Static analyzer: Null pointer dereference HOT 2
- [BUG] Make stopped with error. HOT 2
- OOM when load_file for special folder HOT 5
- Is reading Chinese garbled? HOT 1
- xpath_variable_set Boolean invalid? HOT 2
- strtod is locale dependent, so as xml_attribute::as_double and get_value_double HOT 1
- Empty text childs increase XML file size HOT 5
- xml_node_iterator should satisfy at least std::input_or_output_iterator concept HOT 3
- Assertion fails during number-to-string conversion if wrong C locale is set (non-MSVC) HOT 1
- Support std::filesystem::path HOT 2
- Version 1.14 HOT 1
- Can you add the ability to access child nodes using index? HOT 1
- PUGIXML_WCHAR_MODE and error messages. HOT 1
- add xml_node_type_str function for debugging and application logging HOT 3
- option to join multiple CDATA sections into one when parsing HOT 2
- parse_embed_pcdata and parse_merge_pcdata don't play together HOT 2
- Unexpected #endif in line 13201 with precompilation in a pch.h file HOT 2
- XML Canonicalization: as an option, allow parsing eol's into the document model (as PCDATA holding those) HOT 2
- Warning when building 1.14 in x86 on Clang HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pugixml.