version 1.67, 2015/04/01 22:24:02 |
version 1.68, 2015/04/01 22:49:47 |
|
|
membuf = strtoll(value, &endptr, 10); |
membuf = strtoll(value, &endptr, 10); |
if (endptr == value || (long long)membuf < 0 || |
if (endptr == value || (long long)membuf < 0 || |
(errno == ERANGE && membuf == LLONG_MAX)) |
(errno == ERANGE && membuf == LLONG_MAX)) |
errx(2, "invalid memory buffer size: %s", value); |
goto invalid; |
|
|
switch (*endptr) { |
switch (*endptr) { |
case 'Y': |
case 'Y': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'Z': |
case 'Z': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'E': |
case 'E': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'P': |
case 'P': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'T': |
case 'T': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'G': |
case 'G': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'M': |
case 'M': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case '\0': |
case '\0': |
case 'K': |
case 'K': |
|
if (membuf > ULLONG_MAX / 1024) |
|
goto invalid; |
membuf *= 1024; |
membuf *= 1024; |
/* FALLTHROUGH */ |
/* FALLTHROUGH */ |
case 'b': |
case 'b': |
|
|
membuf = available_free_memory; |
membuf = available_free_memory; |
} |
} |
return membuf; |
return membuf; |
|
invalid: |
|
errx(2, "invalid memory buffer size: %s", value); |
} |
} |
|
|
/* |
/* |