From: Mike T. <mik...@us...> - 2006-05-25 21:40:46
|
Update of /cvsroot/evms/evms2/engine/plugins/md In directory sc8-pr-cvs5.sourceforge.net:/tmp/cvs-serv32415 Modified Files: md_super.c Log Message: In the case of evms cli, maximum number of devices ckeck is omitted. As a consequence, memory corruption may occur. Therefore, an error should be set when attempting to add a new disk to a full array. For MD version 0.90 the limit is 27. For 1KB version 1 superblock, the limit is 384. Index: md_super.c =================================================================== RCS file: /cvsroot/evms/evms2/engine/plugins/md/md_super.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- md_super.c 20 Apr 2006 16:25:00 -0000 1.14 +++ md_super.c 25 May 2006 21:40:41 -0000 1.15 @@ -608,6 +608,13 @@ goto out; } + if (master_sb->nr_disks >= MD_SB_DISKS) { + LOG_ERROR("md%d is full (nr_disks=%d).n", + master_sb->md_minor, master_sb->nr_disks); + rc = EINVAL; + goto out; + } + master_sb->nr_disks++; master_sb->working_disks++; @@ -1736,6 +1743,14 @@ rc = EINVAL; goto out; } + + if (sb->max_dev >= MD_SB_1_DISKS) { + LOG_ERROR("%s is full (max_dev=%d).\n", + sb->set_name, sb->max_dev); + rc = EINVAL; + goto out; + } + sb->dev_number = member->dev_number; if (member->data_size == -1) { |