device-mapper-multipath/0006-libmultipath-don-t-print-undefined-values.patch
Benjamin Marzinski e5cbd1f107 device-mapper-multipath-0.7.6-1.git1cb704b
Update Source to the latest upstream commit
  * Previous patches 0001-0014 are included in this commit
  * Previous patches 0015-0022 are now patches 0007-0014
0001-multipathd-remove-incorrect-pthread_testcancel.patch
  * Fixed pthread cancellation issue. posted upstream
0002-multipath-add-comments.patch
  * Posted upstream
0003-multipathd-minor-dmevents-polling-code-cleanups.patch
  * Fixed minor polling issues. posted upstream
0004-multipathd-remove-unneeded-function-parameter.patch
  * Posted upstream
0005-mpathcmd-fix-libmpathcmd-license.patch
  * License clarification. posted upstream
0006-libmultipath-don-t-print-undefined-values.patch
  * Fixed bug in 'multipath show config'. posted upstream
2018-04-02 17:29:20 -05:00

61 lines
1.7 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Benjamin Marzinski <bmarzins@redhat.com>
Date: Thu, 29 Mar 2018 18:26:12 -0500
Subject: [PATCH] libmultipath: don't print undefined values
commit 48e9fd9f ("libmultipath: parser: use call-by-value for "snprint"
methods") removed some of the code that checked for undefined values to
avoid printing them. This lead to device configurations that printed
out values for parameters that they hadn't configured. This patch adds
that code back in.
Fixes: 48e9fd9f ("libmultipath: parser: use call-by-value for "snprint" methods")
Cc: Martin Wilck <mwilck@suse.com>
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
libmultipath/dict.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/libmultipath/dict.c b/libmultipath/dict.c
index ac9216c..1a18337 100644
--- a/libmultipath/dict.c
+++ b/libmultipath/dict.c
@@ -101,12 +101,16 @@ print_int (char *buff, int len, long v)
static int
print_nonzero (char *buff, int len, long v)
{
+ if (!v)
+ return 0;
return snprintf(buff, len, "%li", v);
}
static int
print_str (char *buff, int len, const char *ptr)
{
+ if (!ptr)
+ return 0;
return snprintf(buff, len, "\"%s\"", ptr);
}
@@ -120,6 +124,8 @@ print_yes_no (char *buff, int len, long v)
static int
print_yes_no_undef (char *buff, int len, long v)
{
+ if (!v)
+ return 0;
return snprintf(buff, len, "\"%s\"",
(v == YNU_NO)? "no" : "yes");
}
@@ -665,6 +671,8 @@ set_dev_loss(vector strvec, void *ptr)
int
print_dev_loss(char * buff, int len, unsigned long v)
{
+ if (!v)
+ return 0;
if (v >= MAX_DEV_LOSS_TMO)
return snprintf(buff, len, "\"infinity\"");
return snprintf(buff, len, "%lu", v);
--
2.7.4