summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2016-03-04 15:49:00 +0100
committerPeter Rajnoha <prajnoha@redhat.com>2016-03-04 15:51:13 +0100
commit9720898c8ee3a4035858508b38179a143d948f4f (patch)
tree02341b7d45c0cdbe2f9e36f5b835c5f3d59144cd
parent67c5006e12c9e3bf888db0fbaa78a50efcbfa9b2 (diff)
downloadlvm2-9720898c8ee3a4035858508b38179a143d948f4f.tar.gz
libdm: config: fix dm_config_write_node and variants to properly return error on failures
The error was not propagated if _write_config (that is part of dm_config_write_node and all its variants) was called recursively for subsections.
-rw-r--r--WHATS_NEW_DM1
-rw-r--r--libdm/libdm-config.c3
2 files changed, 3 insertions, 1 deletions
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index d3eac299b..109249a88 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,5 +1,6 @@
Version 1.02.119 -
=====================================
+ Fix dm_config_write_node and variants to return error on subsection failures.
Remove 4096 char limit due to buffer size if writing dm_config_node.
Version 1.02.118 - 26th February 2016
diff --git a/libdm/libdm-config.c b/libdm/libdm-config.c
index 5fa06a131..dcb7c3f81 100644
--- a/libdm/libdm-config.c
+++ b/libdm/libdm-config.c
@@ -366,7 +366,8 @@ static int _write_config(const struct dm_config_node *n, int only_one,
line_append(" {");
if (!_line_end(n, out))
return_0;
- _write_config(n->child, 0, out, level + 1);
+ if (!_write_config(n->child, 0, out, level + 1))
+ return_0;
if (!_line_start(out))
return_0;
line_append("%s}", space);