[erlang-patches] fix valgrind error in erts/emulator/drivers/unix/ttsl_drv.c

Steve Vinoski vinoski@REDACTED
Mon Apr 22 13:15:10 CEST 2013


Hi Lukas and Sverker,

No, I wasn't hitting ctrl-H. I was just running some eunit tests (with
[verbose]) in a shell and when the tests finished and the shell went to
print the next prompt, valgrind reported this error.

One of my Basho colleagues, though, says he has seen errors that seem
related to this when hitting ctrl-D after a sequence of cursor movements on
the shell command line, but I was never able to reproduce that. Perhaps he
was hitting the problem Sverker refers to.

If you want me to change the patch to fix the other memcpy, just let me
know.

--steve



On Mon, Apr 22, 2013 at 4:53 AM, Sverker Eriksson <
sverker.eriksson@REDACTED> wrote:

> The other call to memcpy in the same function del_chars() seems to have
> the same problem.
> Probably possible to trigger with ctrl-D.
>
> /Sverker
>
> Lukas Larsson wrote:
>
>> Hello Steve!
>>
>> Thanks for the patch.
>>
>> I had to use ctrl-H in the middle of a term in the terminal to trigger
>> the report, was this the case for you as well?
>>
>> Lukas
>>
>> On 22/04/13 02:23, Steve Vinoski wrote:
>>
>>> On Linux I noticed the following complaint while doing some valgrind
>>> testing:
>>>
>>> ==18040== Thread 6:
>>> ==18040== Source and destination overlap in memcpy(0xf3f3f04, 0xf3f3f08,
>>> 52)
>>> ==18040==    at 0x4C2CFA0: memcpy@@GLIBC_2.14 (in
>>> /usr/lib/valgrind/vgpreload_**memcheck-amd64-linux.so)
>>> ==18040==    by 0x5CF527: del_chars (ttsl_drv.c:845)
>>> ==18040==    by 0x5CED5E: ttysl_from_erlang (ttsl_drv.c:658)
>>> ==18040==    by 0x4982E3: erts_write_to_port (io.c:1235)
>>> ==18040==    by 0x49A2BD: erts_port_command (io.c:2223)
>>> ==18040==    by 0x48C054: do_send (bif.c:1962)
>>> ==18040==    by 0x48CB6E: erl_send (bif.c:2162)
>>> ==18040==    by 0x566599: process_main (beam_emu.c:1665)
>>> ==18040==    by 0x4B1A95: sched_thread_func (erl_process.c:4834)
>>> ==18040==    by 0x6075E2: thr_wrapper (ethread.c:106)
>>> ==18040==    by 0x5560E99: start_thread (pthread_create.c:308)
>>>
>>> This patch fixes the problem.
>>>
>>> git fetch git://github.com/vinoski/otp.**git<http://github.com/vinoski/otp.git><
>>> http://github.com/vinoski/**otp.git <http://github.com/vinoski/otp.git>>
>>> sv-ttsl-valgrind
>>>
>>>
>>> https://github.com/vinoski/**otp/compare/erlang:maint...sv-**
>>> ttsl-valgrind<https://github.com/vinoski/otp/compare/erlang:maint...sv-ttsl-valgrind>
>>> https://github.com/vinoski/**otp/compare/erlang:maint...sv-**
>>> ttsl-valgrind.patch<https://github.com/vinoski/otp/compare/erlang:maint...sv-ttsl-valgrind.patch>
>>>
>>> --steve
>>>
>>>
>>> ______________________________**_________________
>>> erlang-patches mailing list
>>> erlang-patches@REDACTED
>>> http://erlang.org/mailman/**listinfo/erlang-patches<http://erlang.org/mailman/listinfo/erlang-patches>
>>>
>>
>>
>> ------------------------------**------------------------------**
>> ------------
>>
>>
>> ______________________________**_________________
>> erlang-patches mailing list
>> erlang-patches@REDACTED
>> http://erlang.org/mailman/**listinfo/erlang-patches<http://erlang.org/mailman/listinfo/erlang-patches>
>>
>>
>
> ______________________________**_________________
> erlang-patches mailing list
> erlang-patches@REDACTED
> http://erlang.org/mailman/**listinfo/erlang-patches<http://erlang.org/mailman/listinfo/erlang-patches>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-patches/attachments/20130422/b2fb9cbc/attachment.htm>


More information about the erlang-patches mailing list