diff options
author | Lukas Larsson <lukas@erlang.org> | 2021-08-16 17:10:02 +0200 |
---|---|---|
committer | Lukas Larsson <lukas@erlang.org> | 2021-08-17 16:25:40 +0200 |
commit | cf45243ce61fb6f36c8a0ead1adb81bb4e09935c (patch) | |
tree | 4c48373ecb40cf05884d27b7b4bc6a41c4b8c1ed | |
parent | 7fe7fa3dde556b5b92522f8279d465bb52baf1f6 (diff) | |
download | erlang-cf45243ce61fb6f36c8a0ead1adb81bb4e09935c.tar.gz |
erts: Fix memcpy buffer overwrite
It is possible for lbuf and lbuf+pos to overlap so use memmove
Closes #5116
-rw-r--r-- | erts/emulator/drivers/unix/ttsl_drv.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/drivers/unix/ttsl_drv.c b/erts/emulator/drivers/unix/ttsl_drv.c index d2a524cb6c..8d2fc06944 100644 --- a/erts/emulator/drivers/unix/ttsl_drv.c +++ b/erts/emulator/drivers/unix/ttsl_drv.c @@ -1105,7 +1105,7 @@ static int insert_buf(byte *s, int n) if (ch == '\n') outc('\n'); if (llen > lpos) { - memcpy(lbuf, lbuf + lpos, llen - lpos); + memmove(lbuf, lbuf + lpos, llen - lpos); } llen -= lpos; lpos = buffpos = 0; |