Package: snmp Version: 2.1.2l4-1 The following patch fixes the problem of integer wrap around that occurs for >=2Gb disks (i.e. sbuf.f_blocks * sbuf.f_bsize > 2^31). This is accomplished by computing the intermediate values in floating point.
Patrick. ---------------------------------------------------------------------- --- snmp-2.1.2l4/agent/snmp_vars.c Sun Aug 20 23:02:21 1995 +++ snmp-2.1.2l4.patched/agent/snmp_vars.c Wed Aug 7 13:17:24 1996 @@ -3514,11 +3525,11 @@ break; case HRSTORAGESIZE: long_return = idx < 2 ? hr_getstor (idx, HRSTORAGESIZE, 1024) : - (sbuf.f_blocks * sbuf.f_bsize) / 1024; + (long)(((float)sbuf.f_blocks * (float)sbuf.f_bsize) / 1024.0 + 0.5 ); break; case HRSTORAGEUSED: long_return = idx < 2 ? hr_getstor (idx, HRSTORAGEUSED, 1024) : - ((sbuf.f_blocks-sbuf.f_bfree) * sbuf.f_bsize) / 1024; + (long)(((float)(sbuf.f_blocks-sbuf.f_bfree) * sbuf.f_bsize) / 1024 .0 + 0.5); break; case HRSTORAGEALLOCFAILURES: long_return = 0; /* XXX: dummy */