From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32702 invoked by alias); 6 Oct 2011 11:06:37 -0000 Received: (qmail 32683 invoked by uid 9737); 6 Oct 2011 11:06:37 -0000 Date: Thu, 06 Oct 2011 11:06:00 -0000 Message-ID: <20111006110637.32681.qmail@sourceware.org> From: zkabelac@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/lib/thin thin.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2011-10/txt/msg00015.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: zkabelac@sourceware.org 2011-10-06 11:06:36 Modified files: lib/thin : thin.c Log message: Add more validation to config parser Do not leave it for vgvalidate(). Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/thin/thin.c.diff?cvsroot=lvm2&r1=1.14&r2=1.15 --- LVM2/lib/thin/thin.c 2011/10/03 18:26:07 1.14 +++ LVM2/lib/thin/thin.c 2011/10/06 11:06:36 1.15 @@ -76,6 +76,11 @@ if (!dm_config_get_uint32(sn, "data_block_size", &seg->data_block_size)) return SEG_LOG_ERROR("Could not read data_block_size"); + if ((seg->data_block_size < DM_THIN_MIN_DATA_SIZE) || + (seg->data_block_size > DM_THIN_MAX_DATA_SIZE)) + return SEG_LOG_ERROR("Unsupported value %u for data_block_size", + seg->device_id); + if (dm_config_has_node(sn, "zero_new_blocks") && !dm_config_get_uint32(sn, "zero_new_blocks", &seg->zero_new_blocks)) return SEG_LOG_ERROR("Could not read zero_new_blocks for"); @@ -168,6 +173,10 @@ if (!dm_config_get_uint32(sn, "device_id", &seg->device_id)) return SEG_LOG_ERROR("Could not read device_id for"); + if (seg->device_id > DM_THIN_MAX_DEVICE_ID) + return SEG_LOG_ERROR("Unsupported value %u for device_id", + seg->device_id); + return 1; }