[lvm-devel] main - cov: add error path for daemon_request_extend

Zdenek Kabelac zkabelac at sourceware.org
Mon Sep 20 13:30:00 UTC 2021


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e1840dd9e0b3be55281466e60a9a07cce068db4f
Commit:        e1840dd9e0b3be55281466e60a9a07cce068db4f
Parent:        6427803252354203dfa5d816c6a8dc0ae385051e
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Mon Sep 20 01:48:30 2021 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Mon Sep 20 14:26:09 2021 +0200

cov: add error path for daemon_request_extend

Check for errors in daemon_request_extend().
---
 lib/locking/lvmlockd.c | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/lib/locking/lvmlockd.c b/lib/locking/lvmlockd.c
index 2284d60fe..4f9952d5b 100644
--- a/lib/locking/lvmlockd.c
+++ b/lib/locking/lvmlockd.c
@@ -186,7 +186,7 @@ static int _lockd_result(daemon_reply reply, int *result, uint32_t *lockd_flags)
 static daemon_reply _lockd_send_with_pvs(const char *req_name,
 				const struct lvmlockd_pvs *lock_pvs, ...)
 {
-	daemon_reply repl;
+	daemon_reply repl = { .error = -1 };
 	daemon_request req;
 	int i;
 	char key[32];
@@ -201,18 +201,23 @@ static daemon_reply _lockd_send_with_pvs(const char *req_name,
 
 	/* Pass PV list */
 	if (lock_pvs && lock_pvs->num) {
-		daemon_request_extend(req, "path_num = " FMTd64,
-				      (int64_t)(lock_pvs)->num, NULL);
-
+		if (!daemon_request_extend(req, "path_num = " FMTd64,
+					   (int64_t)(lock_pvs)->num, NULL)) {
+			log_error("Failed to create pvs request.");
+			goto bad;
+		}
 		for (i = 0; i < lock_pvs->num; i++) {
 			snprintf(key, sizeof(key), "path[%d] = %%s", i);
 			val = lock_pvs->path[i] ? lock_pvs->path[i] : "none";
-			daemon_request_extend(req, key, val, NULL);
+			if (!daemon_request_extend(req, key, val, NULL)) {
+				log_error("Failed to create pvs request.");
+				goto bad;
+			}
 		}
 	}
 
 	repl = daemon_send(_lvmlockd, req);
-
+bad:
 	daemon_request_destroy(req);
 
 	return repl;




More information about the lvm-devel mailing list