1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

args: do not accept >=16EiB sizes

Instead of seeing wierd overflows inside the lvm code,
giving false error messages, kill the user experiment in the begining.

Who needs to use more then 16EiB with lvm2 and 64bit anyway...
This commit is contained in:
Zdenek Kabelac 2013-05-29 14:50:21 +02:00
parent c5c452a137
commit 99f0483580
2 changed files with 5 additions and 0 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.99 - Version 2.02.99 -
=================================== ===================================
Do not accept size parameters bigger then 16EiB.
Fix release of PV's fid in free_pv_fid(). Fix release of PV's fid in free_pv_fid().
Skip monitoring of snapshots that are already bigger then origin. Skip monitoring of snapshots that are already bigger then origin.
Add lv_is_cow_covering_origin() to check if cow covers origin size. Add lv_is_cow_covering_origin() to check if cow covers origin size.

View File

@ -340,6 +340,10 @@ static int _size_arg(struct cmd_context *cmd __attribute__((unused)), struct arg
} else } else
v *= factor; v *= factor;
if ((uint64_t) v >= (UINT64_MAX >> SECTOR_SHIFT)) {
log_error("Size is too big (>=16EiB).");
return 0;
}
av->i_value = (int32_t) v; av->i_value = (int32_t) v;
av->ui_value = (uint32_t) v; av->ui_value = (uint32_t) v;
av->i64_value = (int64_t) v; av->i64_value = (int64_t) v;