summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS4
-rw-r--r--HISTORY2
-rw-r--r--tools.c8
3 files changed, 10 insertions, 4 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index afb1db90..4fc70b06 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -317,3 +317,7 @@ Dimitrios Dimitrakos <mail@dimitrios.de>
Marcus Kuba <marcus@kuba4u.de>
for reporting a bug in the unit of the "SVDRP timeout" setup parameter
+
+Ulrich Petri <ulope@gmx.de>
+ for his help in debugging a crash on systems with disks that have a block size
+ larger than 1MB
diff --git a/HISTORY b/HISTORY
index 86985dfe..32f3adb1 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1228,3 +1228,5 @@ Video Disk Recorder Revision History
- Added Greek language texts (thanks to Dimitrios Dimitrakos).
- Fixed the unit of the "SVDRP timeout" setup parameter (thanks to Marcus Kuba
for reporting this one).
+- Fixed a crash on systems with disks that have a block size larger than 1MB
+ (thanks to Ulrich Petri for helping to debug this one).
diff --git a/tools.c b/tools.c
index 099fb7d9..6f99ef09 100644
--- a/tools.c
+++ b/tools.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: tools.c 1.62 2002/03/31 20:51:06 kls Exp $
+ * $Id: tools.c 1.63 2002/05/01 16:20:30 kls Exp $
*/
#include "tools.h"
@@ -251,10 +251,10 @@ int FreeDiskSpaceMB(const char *Directory, int *UsedMB)
int Free = 0;
struct statfs statFs;
if (statfs(Directory, &statFs) == 0) {
- int blocksPerMeg = 1024 * 1024 / statFs.f_bsize;
+ double blocksPerMeg = 1024.0 * 1024.0 / statFs.f_bsize;
if (UsedMB)
- *UsedMB = (statFs.f_blocks - statFs.f_bfree) / blocksPerMeg;
- Free = statFs.f_bavail / blocksPerMeg;
+ *UsedMB = int((statFs.f_blocks - statFs.f_bfree) / blocksPerMeg);
+ Free = int(statFs.f_bavail / blocksPerMeg);
}
else
LOG_ERROR_STR(Directory);