diff options
Diffstat (limited to 'util-linux/fdisk.c')
-rw-r--r-- | util-linux/fdisk.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/util-linux/fdisk.c b/util-linux/fdisk.c index cdcba0a03..e47bc7324 100644 --- a/util-linux/fdisk.c +++ b/util-linux/fdisk.c | |||
@@ -169,9 +169,9 @@ typedef unsigned long long ullong; | |||
169 | * do not support more than 2^32 sectors | 169 | * do not support more than 2^32 sectors |
170 | */ | 170 | */ |
171 | typedef uint32_t sector_t; | 171 | typedef uint32_t sector_t; |
172 | #if UINT_MAX == 4294967295 | 172 | #if UINT_MAX == 0xffffffff |
173 | # define SECT_FMT "" | 173 | # define SECT_FMT "" |
174 | #elif ULONG_MAX == 4294967295 | 174 | #elif ULONG_MAX == 0xffffffff |
175 | # define SECT_FMT "l" | 175 | # define SECT_FMT "l" |
176 | #else | 176 | #else |
177 | # error Cant detect sizeof(uint32_t) | 177 | # error Cant detect sizeof(uint32_t) |
@@ -1616,7 +1616,10 @@ read_int(sector_t low, sector_t dflt, sector_t high, sector_t base, const char * | |||
1616 | int minus = (*line_ptr == '-'); | 1616 | int minus = (*line_ptr == '-'); |
1617 | int absolute = 0; | 1617 | int absolute = 0; |
1618 | 1618 | ||
1619 | value = atoi(line_ptr + 1); | 1619 | if (sizeof(value) <= sizeof(long)) |
1620 | value = strtoul(line_ptr + 1, NULL, 10); | ||
1621 | else | ||
1622 | value = strtoull(line_ptr + 1, NULL, 10); | ||
1620 | 1623 | ||
1621 | /* (1) if 2nd char is digit, use_default = 0. | 1624 | /* (1) if 2nd char is digit, use_default = 0. |
1622 | * (2) move line_ptr to first non-digit. */ | 1625 | * (2) move line_ptr to first non-digit. */ |