public inbox for lvm2-cvs@sourceware.org
help / color / mirror / Atom feed
From: mbroz@sourceware.org
To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org
Subject: LVM2/tools toollib.c
Date: Tue, 07 Apr 2009 10:22:00 -0000	[thread overview]
Message-ID: <20090407102215.23368.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	mbroz@sourceware.org	2009-04-07 10:22:15

Modified files:
	tools          : toollib.c 

Log message:
	Use pv from newly read_vg to avoid possible use of not initialized memory.
	
	If the vg in process_each_segment_in_pv is NULL, the pv struct
	can be incomplete (for example lv_segs are not copied in get_pvs()
	call).
	
	We need use the new pv from just read-in volume group.
	
	(The same code is in pvdisplay already.)

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/toollib.c.diff?cvsroot=lvm2&r1=1.144&r2=1.145

--- LVM2/tools/toollib.c	2009/02/25 23:29:07	1.144
+++ LVM2/tools/toollib.c	2009/04/07 10:22:14	1.145
@@ -364,6 +364,7 @@
 						      void *handle))
 {
 	struct pv_segment *pvseg;
+	struct pv_list *pvl;
 	const char *vg_name = NULL;
 	int ret_max = ECMD_PROCESSED;
 	int ret;
@@ -376,6 +377,18 @@
 			log_error("Skipping volume group %s", vg_name);
 			return ECMD_FAILED;
 		}
+
+		/*
+		 * Replace possibly incomplete PV structure with new one
+		 * allocated in vg_read_internal() path.
+		 */
+		if (!(pvl = find_pv_in_vg(vg, pv_dev_name(pv)))) {
+			 log_error("Unable to find %s in volume group %s",
+				   pv_dev_name(pv), vg_name);
+			return ECMD_FAILED;
+		}
+
+		pv = pvl->pv;
 	}
 
 	dm_list_iterate_items(pvseg, &pv->segments) {


             reply	other threads:[~2009-04-07 10:22 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-07 10:22 mbroz [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-03-04 15:58 zkabelac
2010-12-20 14:05 zkabelac
2010-12-01 12:22 zkabelac
2010-12-01 10:36 zkabelac
2010-10-25 12:08 zkabelac
2010-04-28 12:23 zkabelac
2009-07-15 12:23 wysochanski
2009-07-15 12:15 wysochanski
2009-07-15  5:23 wysochanski
2009-06-10 11:15 mbroz
2009-06-10 10:15 mbroz
2009-04-23 16:45 mornfall
2008-06-11 15:02 meyering
2007-11-12 14:36 agk
2006-11-03 21:23 agk
2006-03-10 15:41 agk
2005-01-19 17:31 agk
2005-01-19 17:31 agk
2004-06-20 15:14 agk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090407102215.23368.qmail@sourceware.org \
    --to=mbroz@sourceware.org \
    --cc=lvm-devel@redhat.com \
    --cc=lvm2-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).