Hi,

apparently the "create_size" option does currently not work.  This is
because the strsuftoll() function uses "long long" compares which limits
the positive maximum to LLONG_MAX.  Unfortunately the maximum is always
set to ULLONG_MAX, which is treated as -1 and cannot be a reasonable
maximum value.  This diff basically changes the maximum to LLONG_MAX.

Opinions? ok?

Patrick

diff --git a/usr.sbin/makefs/msdos.c b/usr.sbin/makefs/msdos.c
index a60af9adaa5..863349c09e4 100644
--- a/usr.sbin/makefs/msdos.c
+++ b/usr.sbin/makefs/msdos.c
@@ -63,7 +63,7 @@ msdos_prep_opts(fsinfo_t *fsopts)
        .minimum = _min,                                                \
        .maximum = sizeof(_type) == 1 ? 0xff :                          \
            (sizeof(_type) == 2 ? 0xffff :                              \
-           (sizeof(_type) == 4 ? 0xffffffff : 0xffffffffffffffffLL)),  \
+           (sizeof(_type) == 4 ? 0xffffffff : 0x7fffffffffffffffLL)),  \
 },
 ALLOPTS
 #undef AOPT

Reply via email to