Hi tech@, disklabel shows a warning at build time which might be important. Following diff will surpass the warning.
=================================================================== RCS file: /cvs/src/sbin/disklabel/editor.c,v retrieving revision 1.368 diff -u -p -r1.368 editor.c --- editor.c 2021/05/30 19:02:30 1.368 +++ editor.c 2021/06/23 19:25:45 @@ -2418,7 +2418,7 @@ apply_unit(double val, u_char unit, u_int64_t *n) } val *= factor / DEV_BSIZE; - if (val > ULLONG_MAX) + if (val != (double)(u_int64_t)val) return (-1); *n = val; return (0); @@ -2429,7 +2429,7 @@ parse_sizespec(const char *buf, double *val, char **un { errno = 0; *val = strtod(buf, unit); - if (errno == ERANGE || *val < 0 || *val > ULLONG_MAX) + if (errno == ERANGE || *val < 0 || *val != (double)(u_int64_t)*val) return (-1); /* too big/small */ if (*val == 0 && *unit == buf) return (-1); /* No conversion performed. */