From 5fa2da125157a1beca508792ee5d9be833c2c0cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 10 Mar 2021 13:35:26 +0100 Subject: [PATCH] shared/fstab-util: immediately drop empty options again MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In the conversion from strv_split() to strv_split_full() done in 7bb553bb98a57b4e03804f8192bdc5a534325582, EXTRACT_DONT_COALESCE_SEPARATORS was added. I think this was just by mistake… We never look for "empty options", so whether we immediately ignore the extra separator or store the empty string in strv, should make no difference. --- src/shared/fstab-util.c | 2 +- src/test/test-fstab-util.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c index 292b97cd69..1ddcd371cf 100644 --- a/src/shared/fstab-util.c +++ b/src/shared/fstab-util.c @@ -140,7 +140,7 @@ int fstab_filter_options(const char *opts, const char *names, break; } } else { - r = strv_split_full(&stor, opts, ",", EXTRACT_DONT_COALESCE_SEPARATORS | EXTRACT_UNESCAPE_SEPARATORS); + r = strv_split_full(&stor, opts, ",", EXTRACT_UNESCAPE_SEPARATORS); if (r < 0) return r; diff --git a/src/test/test-fstab-util.c b/src/test/test-fstab-util.c index 222ffbb2a7..ebbdd05ca6 100644 --- a/src/test/test-fstab-util.c +++ b/src/test/test-fstab-util.c @@ -91,9 +91,13 @@ static void test_fstab_filter_options(void) { do_fstab_filter_options("opt =0", "x-opt\0opt\0noopt\0x-noopt\0", 0, NULL, NULL, NULL); do_fstab_filter_options(" opt ", "opt\0x-opt\0", 0, NULL, NULL, NULL); - /* check function will NULL args */ + /* check function with NULL args */ do_fstab_filter_options(NULL, "opt\0", 0, NULL, NULL, ""); do_fstab_filter_options("", "opt\0", 0, NULL, NULL, ""); + + /* unnecessary comma separators */ + do_fstab_filter_options("opt=x,,,,", "opt\0", 1, "opt", "x", ""); + do_fstab_filter_options(",,,opt=x,,,,", "opt\0", 1, "opt", "x", ""); } static void test_fstab_find_pri(void) {