This bug is related to the closed bug - ID: 2792252. It addresses the same problems:
There are problems with the fix provided in bug (ID: 2792252) as it doesn't help in situations when memmove
is called by glibc itself.
For example realpath funciton has the following code:
/* Careful here, end may be a pointer into extra_buf... */
memmove (&extra_buf[n], end, len + 1);
name = end = memcpy (extra_buf, buf, n);
When it is executed duma doesn't catch the listed memmove and memcpy calls. But
during the execution of the memmove() function the memcpy() is called and
caught by duma, which leads to the initial problem.
Patch is provided to fix this bug:
Added another DUMA configuration environment variable DUMA_MEMCPY_OVERLAP.
Set to 1 to allow overlapping memcpy regions when destination address is less
than source address.
Please integrate this last workaround. With it there is no need to add memmove
implementation to DUMA.
Log in to post a comment.