From 07717cc4feac09d4f00f9859550996cc6dd4a89b Mon Sep 17 00:00:00 2001 From: Patrik Nyblom Date: Mon, 17 Dec 2012 18:28:56 +0100 Subject: Fix inet_drv _oct counters 32bit/64bit bug --- erts/emulator/drivers/common/inet_drv.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'erts/emulator') diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c index 5f8837fd4f..c284a8aa86 100644 --- a/erts/emulator/drivers/common/inet_drv.c +++ b/erts/emulator/drivers/common/inet_drv.c @@ -7885,7 +7885,7 @@ static ErlDrvSSizeT inet_ctl(inet_descriptor* desc, int cmd, char* buf, static void inet_output_count(inet_descriptor* desc, ErlDrvSizeT len) { unsigned long n = desc->send_cnt + 1; - unsigned long t = desc->send_oct[0] + len; + unsigned long t = (desc->send_oct[0] + len) & 0xFFFFFFFFUL; int c = (t < desc->send_oct[0]); double avg = desc->send_avg; @@ -7905,7 +7905,7 @@ static void inet_output_count(inet_descriptor* desc, ErlDrvSizeT len) static void inet_input_count(inet_descriptor* desc, ErlDrvSizeT len) { unsigned long n = desc->recv_cnt + 1; - unsigned long t = desc->recv_oct[0] + len; + unsigned long t = (desc->recv_oct[0] + len) & 0xFFFFFFFFUL; int c = (t < desc->recv_oct[0]); double avg = desc->recv_avg; double dvi; -- cgit v1.2.3