aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/test/port_trace_SUITE_data/echo_drv.c
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2016-04-19 11:26:03 +0200
committerLukas Larsson <[email protected]>2016-04-26 16:02:44 +0200
commitd8371a0598ee7c831e8f096cfd5b0af0a0503474 (patch)
treee351126fafcf8af24f41d387f14d52394bead425 /erts/emulator/test/port_trace_SUITE_data/echo_drv.c
parent0547610c0bd1fb0de4352fc8322094722145d9d1 (diff)
downloadotp-d8371a0598ee7c831e8f096cfd5b0af0a0503474.tar.gz
otp-d8371a0598ee7c831e8f096cfd5b0af0a0503474.tar.bz2
otp-d8371a0598ee7c831e8f096cfd5b0af0a0503474.zip
erts: Expand trace tests for refc binaries
Make sure to cover all of the refc binary cases in tracing
Diffstat (limited to 'erts/emulator/test/port_trace_SUITE_data/echo_drv.c')
-rw-r--r--erts/emulator/test/port_trace_SUITE_data/echo_drv.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/erts/emulator/test/port_trace_SUITE_data/echo_drv.c b/erts/emulator/test/port_trace_SUITE_data/echo_drv.c
index b5728bc170..b5ae9389b4 100644
--- a/erts/emulator/test/port_trace_SUITE_data/echo_drv.c
+++ b/erts/emulator/test/port_trace_SUITE_data/echo_drv.c
@@ -217,6 +217,8 @@ static ErlDrvSSizeT echo_drv_control(ErlDrvData drv_data,
char *buf, ErlDrvSizeT len,
char **rbuf, ErlDrvSizeT rlen)
{
+ if ((len - 1) > rlen)
+ *rbuf = driver_alloc(len - 1);
memcpy(*rbuf, buf+1, len-1);
return len-1;
}
@@ -232,6 +234,8 @@ static ErlDrvSSizeT echo_drv_call(ErlDrvData drv_data,
char **rbuf, ErlDrvSizeT rlen,
unsigned int *flags)
{
+ if ((len - command) > rlen)
+ *rbuf = driver_alloc(len - command);
memcpy(*rbuf, buf+command, len-command);
return len-command;
}