mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Occasionally, on Linux, Address Sanitizer can complain about a memory region overlap in the arguments to memcpy, originating in EdgeTable::intersectWithEdgeTableLine. I haven't been able to reproduce this personally. The final memcpy call in this function requires there to be "srcNum1 * 2" valid entries after the current "src1" ptr, and none of those entries may overlap with the area starting at "temp". On inspection, I think that the memory region being read is too large. At the point of the call, src1 will point to a LineItem::level, not LineItem::x, so there will actually be (srcNum1 * 2 - 1) valid items following it. All this pointer arithmetic is very difficult to understand. In an effort to make this function slightly more understandable, I've switched to using Spans to delineate lines of the table, which makes it easier to keep track of the size of each line. |
||
|---|---|---|
| .. | ||
| juce_analytics | ||
| juce_animation | ||
| juce_audio_basics | ||
| juce_audio_devices | ||
| juce_audio_formats | ||
| juce_audio_plugin_client | ||
| juce_audio_processors | ||
| juce_audio_utils | ||
| juce_box2d | ||
| juce_core | ||
| juce_cryptography | ||
| juce_data_structures | ||
| juce_dsp | ||
| juce_events | ||
| juce_graphics | ||
| juce_gui_basics | ||
| juce_gui_extra | ||
| juce_midi_ci | ||
| juce_opengl | ||
| juce_osc | ||
| juce_product_unlocking | ||
| juce_video | ||
| CMakeLists.txt | ||