Module Name: src
Committed By: abs
Date: Mon Jun 25 16:47:03 UTC 2012
Modified Files:
src/dist/pdisk: partition_map.c
Log Message:
Casting an uint32_t pointer to (long *) may have been acceptable
in the eighties but that time has long past. Minimally invasive
fix using a temporary long variable, so while we can still overflow
at least we're less broken.
To generate a diff of this commit:
cvs rdiff -u -r1.14 -r1.15 src/dist/pdisk/partition_map.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/dist/pdisk/partition_map.c
diff -u src/dist/pdisk/partition_map.c:1.14 src/dist/pdisk/partition_map.c:1.15
--- src/dist/pdisk/partition_map.c:1.14 Fri Apr 6 22:41:47 2012
+++ src/dist/pdisk/partition_map.c Mon Jun 25 16:47:03 2012
@@ -514,12 +514,14 @@ create_partition_map(char *name, partiti
default_number = number;
flush_to_newline(0);
do {
+ long long_number = number;
if (get_number_argument("what should be the size? ",
- (long *)&number, default_number) == 0) {
+ &long_number, default_number) == 0) {
printf("Not a number\n");
flush_to_newline(1);
number = 0;
} else {
+ number = long_number;
multiple = get_multiplier(map->logical_block);
if (multiple == 0) {
printf("Bad multiplier\n");