From f20ea02f85301af731abf6a628b4d1c83cd0504d Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 9 Nov 2009 15:20:54 +0000 Subject: [PATCH] 2009-11-09 Joel Sherrill * libfs/src/dosfs/msdos_format.c: Rework to avoid overflow on 16-bit targets. --- cpukit/ChangeLog | 5 +++++ cpukit/libfs/src/dosfs/msdos_format.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index f0f8edc6f0..cd572064f4 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,8 @@ +2009-11-09 Joel Sherrill + + * libfs/src/dosfs/msdos_format.c: Rework to avoid overflow on 16-bit + targets. + 2009-11-09 Joel Sherrill * libcsupport/src/open_dev_console.c: Use constant numbers to avoid diff --git a/cpukit/libfs/src/dosfs/msdos_format.c b/cpukit/libfs/src/dosfs/msdos_format.c index c420333243..23beb4d144 100644 --- a/cpukit/libfs/src/dosfs/msdos_format.c +++ b/cpukit/libfs/src/dosfs/msdos_format.c @@ -490,7 +490,8 @@ static int msdos_format_determine_fmt_params fmt_params->sectors_per_cluster = 2; } else { - uint32_t gigs = (total_size + (1024 * 1024 * 1024)) / (1024 * 1024 * 1024); + #define ONE_GB (1024L * 1024L * 1024L) + uint32_t gigs = (total_size + ONE_GB) / ONE_GB; int b; fmt_params->fattype = FAT_FAT32; /* scale with the size of disk... */