FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Device-mapper Development

 
 
LinkBack Thread Tools
 
Old 03-18-2011, 06:50 PM
 
Default multipath-tools libmultipath/dict.c libmultipa ...

CVSROOT: /cvs/dm
Module name: multipath-tools
Branch: RHEL5_FC6
Changes by: bmarzins@sourceware.org 2011-03-18 19:50:41

Modified files:
libmultipath : dict.c parser.c
multipath : multipath.conf.redhat

Log message:
Fix for bz#675369. Multipath now uses set_value to get the value in all the
handler functions, and set_value now makes sure that there is value for the
option before trying to get its length.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/dict.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r1= 1.17.2.17&r2=1.17.2.18
http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/libmultipath/parser.c.diff?cvsroot=dm&only_with_tag=RHEL5_FC6&r 1=1.18.2.3&r2=1.18.2.4
http://sourceware.org/cgi-bin/cvsweb.cgi/multipath-tools/multipath/multipath.conf.redhat.diff?cvsroot=dm&only_with_ta g=RHEL5_FC6&r1=1.6.2.7&r2=1.6.2.8

--- multipath-tools/libmultipath/dict.c 2011/02/18 18:27:00 1.17.2.17
+++ multipath-tools/libmultipath/dict.c 2011/03/18 19:50:40 1.17.2.18
@@ -27,10 +27,13 @@
{
char * buff;

- buff = VECTOR_SLOT(strvec, 1);
+ buff = set_value(strvec);
+ if (!buff)
+ return 1;
conf->checkint = atoi(buff);
conf->max_checkint = MAX_CHECKINT(conf->checkint);

+ FREE(buff);
return 0;
}

@@ -40,6 +43,8 @@
char * buff;

buff = set_value(strvec);
+ if (!buff)
+ return 1;
if (strlen(buff) == 3 && !strcmp(buff, "off"))
conf->fast_io_fail = -1;
else if (sscanf(buff, "%d", &conf->fast_io_fail) != 1 ||
@@ -56,6 +61,8 @@
char * buff;

buff = set_value(strvec);
+ if (!buff)
+ return 1;
if (sscanf(buff, "%u", &conf->dev_loss) != 1)
conf->dev_loss = 0;

@@ -68,9 +75,12 @@
{
char * buff;

- buff = VECTOR_SLOT(strvec, 1);
+ buff = set_value(strvec);
+ if (!buff)
+ return 1;
conf->verbosity = atoi(buff);

+ FREE(buff);
return 0;
}

@@ -306,6 +316,8 @@
char * buff;

buff = set_value(strvec);
+ if (!buff)
+ return 1;

if (strlen(buff) == 6 && !strcmp(buff, "manual"))
conf->pgfailback = -FAILBACK_MANUAL;
@@ -729,6 +741,8 @@
struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);

buff = set_value(strvec);
+ if (!buff)
+ return 1;
if (strlen(buff) == 3 && !strcmp(buff, "off"))
hwe->fast_io_fail = -1;
else if (sscanf(buff, "%d", &hwe->fast_io_fail) != 1 ||
@@ -746,6 +760,8 @@
struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);

buff = set_value(strvec);
+ if (!buff)
+ return 1;
if (sscanf(buff, "%u", &hwe->dev_loss) != 1)
hwe->dev_loss = 0;

@@ -883,7 +899,8 @@
return 1;

buff = set_value(strvec);
-
+ if (!buff)
+ return 1;
if (strlen(buff) == 6 && !strcmp(buff, "manual"))
hwe->pgfailback = -FAILBACK_MANUAL;
else if (strlen(buff) == 9 && !strcmp(buff, "immediate"))
@@ -1155,7 +1172,8 @@
return 1;

buff = set_value(strvec);
-
+ if (!buff)
+ return 1;
if (strlen(buff) == 6 && !strcmp(buff, "manual"))
mpe->pgfailback = -FAILBACK_MANUAL;
else if (strlen(buff) == 9 && !strcmp(buff, "immediate"))
--- multipath-tools/libmultipath/parser.c 2011/03/07 05:19:38 1.18.2.3
+++ multipath-tools/libmultipath/parser.c 2011/03/18 19:50:40 1.18.2.4
@@ -2,7 +2,7 @@
* Part: Configuration file parser/reader. Place into the dynamic
* data structure representation the conf file
*
- * Version: $Id: parser.c,v 1.18.2.3 2011/03/07 05:19:38 bmarzins Exp $
+ * Version: $Id: parser.c,v 1.18.2.4 2011/03/18 19:50:40 bmarzins Exp $
*
* Author: Alexandre Cassen, <acassen@linux-vs.org>
*
@@ -374,13 +374,17 @@
void *
set_value(vector strvec)
{
- char *str = VECTOR_SLOT(strvec, 1);
- int size = strlen(str);
+ char *str;
+ int size;
int i = 0;
int len = 0;
char *alloc = NULL;
char *tmp;

+ if (VECTOR_SIZE(strvec) < 2)
+ return NULL;
+ str = VECTOR_SLOT(strvec, 1);
+ size = strlen(str);
if (*str == '"') {
for (i = 2; i < VECTOR_SIZE(strvec); i++) {
str = VECTOR_SLOT(strvec, i);
--- multipath-tools/multipath/multipath.conf.redhat 2008/01/15 01:34:36 1.6.2.7
+++ multipath-tools/multipath/multipath.conf.redhat 2011/03/18 19:50:41 1.6.2.8
@@ -36,7 +36,7 @@
# selector "round-robin 0"
# path_grouping_policy multibus
# getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
-# prio_callout /bin/true
+# prio_callout none
# path_checker readsector0
# rr_min_io 100
# max_fds 8192

--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
 

Thread Tools




All times are GMT. The time now is 02:51 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org