When the read returns 0, it could mean the file was trimmed or some other type of problem. In this case abort the potentially endless loop. (cherry picked from commit 071845e9dda29eb7862dba16363711acafb812ca)
31 lines
998 B
Diff
31 lines
998 B
Diff
From c3c212d2185c0e185a536f9380e33bccc44f09a4 Mon Sep 17 00:00:00 2001
|
|
From: Zdenek Kabelac <zkabelac@redhat.com>
|
|
Date: Wed, 29 Jan 2025 00:00:23 +0100
|
|
Subject: [PATCH] config: check for 0 from read
|
|
|
|
When the read returns 0, it could mean the file
|
|
was trimmed or some other type of problem.
|
|
In this case abort the potentially endless loop.
|
|
|
|
Reference: https://github.com/lvmteam/lvm2/commit/e907c3cf9a1c294b6551d525d58f3bd7dbbb1cc5
|
|
Conflict: NA
|
|
---
|
|
lib/config/config.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/lib/config/config.c b/lib/config/config.c
|
|
index 0cb0da1..a4c3fe6 100644
|
|
--- a/lib/config/config.c
|
|
+++ b/lib/config/config.c
|
|
@@ -534,7 +534,7 @@ int config_file_read_fd(struct dm_config_tree *cft, struct device *dev, dev_io_r
|
|
sz = read(dev_fd(dev), buf + rsize, size - rsize);
|
|
} while ((sz < 0) && ((errno == EINTR) || (errno == EAGAIN)));
|
|
|
|
- if (sz < 0) {
|
|
+ if (sz <= 0) {
|
|
log_sys_error("read", dev_name(dev));
|
|
goto out;
|
|
}
|
|
--
|
|
2.33.0
|