From f625b1ed77f292d5f35802c368a050102da7333f Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Mon, 19 Dec 2022 11:47:59 +0000 Subject: [PATCH] Adding d/p/19_check_disk_fs_usage from upstream --- debian/patches/19_check_disk_fs_usage | 46 +++++++++++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 47 insertions(+) create mode 100644 debian/patches/19_check_disk_fs_usage diff --git a/debian/patches/19_check_disk_fs_usage b/debian/patches/19_check_disk_fs_usage new file mode 100644 index 0000000..d91bae3 --- /dev/null +++ b/debian/patches/19_check_disk_fs_usage @@ -0,0 +1,46 @@ +From dd249c5d4bbce1c1250322dab8c8d0d69b0dca34 Mon Sep 17 00:00:00 2001 +From: christian-2 <49752982+christian-2@users.noreply.github.com> +Date: Tue, 13 Dec 2022 23:48:36 +0100 +Subject: [PATCH] check_disk: Find accessible mount path if multiple are + available (#1820) + +* fixes #1819 +* mount entries also have to be accessible according to get_fs_usage() +--- + lib/utils_disk.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/lib/utils_disk.c b/lib/utils_disk.c +index c7c9126e4..4f16068a7 100644 +--- a/lib/utils_disk.c ++++ b/lib/utils_disk.c +@@ -28,6 +28,7 @@ + + #include "common.h" + #include "utils_disk.h" ++#include "gl/fsusage.h" + + void + np_add_name (struct name_list **list, const char *name) +@@ -127,9 +128,12 @@ np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list + size_t name_len = strlen(d->name); + size_t best_match_len = 0; + struct mount_entry *best_match = NULL; ++ struct fs_usage fsp; + + /* set best match if path name exactly matches a mounted device name */ + for (me = mount_list; me; me = me->me_next) { ++ if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) < 0) ++ continue; /* skip if permissions do not suffice for accessing device */ + if (strcmp(me->me_devname, d->name)==0) + best_match = me; + } +@@ -137,6 +141,8 @@ np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list + /* set best match by directory name if no match was found by devname */ + if (! best_match) { + for (me = mount_list; me; me = me->me_next) { ++ if (get_fs_usage(me->me_mountdir, me->me_devname, &fsp) < 0) ++ continue; /* skip if permissions do not suffice for accessing device */ + size_t len = strlen (me->me_mountdir); + if ((exact == FALSE && (best_match_len <= len && len <= name_len && + (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0))) diff --git a/debian/patches/series b/debian/patches/series index c91c2c7..4b7a686 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -7,3 +7,4 @@ 16_check_pgsql_dbname_too_strict 17_check_curl_detect_ipv6 18_check_icmp_help +19_check_disk_fs_usage