• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

systemd / systemd / 14895667988

07 May 2025 08:57PM UTC coverage: 72.225% (-0.007%) from 72.232%
14895667988

push

github

yuwata
network: log_link_message_debug_errno() automatically append %m if necessary

Follow-up for d28746ef5.
Fixes CID#1609753.

0 of 1 new or added line in 1 file covered. (0.0%)

20297 existing lines in 338 files now uncovered.

297407 of 411780 relevant lines covered (72.22%)

695716.85 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

75.44
/src/systemctl/systemctl-mount.c
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2

3
#include "alloc-util.h"
4
#include "bus-error.h"
5
#include "bus-locator.h"
6
#include "dissect-image.h"
7
#include "extract-word.h"
8
#include "systemctl.h"
9
#include "systemctl-mount.h"
10
#include "systemctl-util.h"
11

12
int verb_bind(int argc, char *argv[], void *userdata) {
4✔
UNCOV
13
        _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
×
14
        _cleanup_free_ char *n = NULL;
4✔
15
        sd_bus *bus;
4✔
16
        int r;
4✔
17

18
        r = acquire_bus(BUS_MANAGER, &bus);
4✔
19
        if (r < 0)
4✔
20
                return r;
21

22
        polkit_agent_open_maybe();
4✔
23

24
        r = unit_name_mangle(argv[1], arg_quiet ? 0 : UNIT_NAME_MANGLE_WARN, &n);
8✔
25
        if (r < 0)
4✔
UNCOV
26
                return log_error_errno(r, "Failed to mangle unit name: %m");
×
27

28
        r = bus_call_method(
4✔
29
                        bus,
30
                        bus_systemd_mgr,
31
                        "BindMountUnit",
32
                        &error,
33
                        NULL,
34
                        "sssbb",
35
                        n,
36
                        argv[2],
37
                        argv[3],
38
                        arg_read_only,
39
                        arg_mkdir);
40
        if (r < 0)
4✔
41
                return log_error_errno(r, "Failed to bind mount: %s", bus_error_message(&error, r));
2✔
42

43
        return 0;
44
}
45

46
int verb_mount_image(int argc, char *argv[], void *userdata) {
2✔
UNCOV
47
        _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
×
48
        const char *unit = argv[1], *src = argv[2], *dest = argv[3];
2✔
49
        _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL;
2✔
50
        _cleanup_free_ char *n = NULL;
2✔
51
        sd_bus *bus;
2✔
52
        int r;
2✔
53

54
        r = acquire_bus(BUS_MANAGER, &bus);
2✔
55
        if (r < 0)
2✔
56
                return r;
57

58
        polkit_agent_open_maybe();
2✔
59

60
        r = unit_name_mangle(unit, arg_quiet ? 0 : UNIT_NAME_MANGLE_WARN, &n);
2✔
61
        if (r < 0)
2✔
UNCOV
62
                return log_error_errno(r, "Failed to mangle unit name: %m");
×
63

64
        r = bus_message_new_method_call(
2✔
65
                        bus,
66
                        &m,
67
                        bus_systemd_mgr,
68
                        "MountImageUnit");
69
        if (r < 0)
2✔
UNCOV
70
                return bus_log_create_error(r);
×
71

72
        r = sd_bus_message_append(
2✔
73
                        m,
74
                        "sssbb",
75
                        n,
76
                        src,
77
                        dest,
78
                        arg_read_only,
79
                        arg_mkdir);
80
        if (r < 0)
2✔
UNCOV
81
                return bus_log_create_error(r);
×
82

83
        r = sd_bus_message_open_container(m, 'a', "(ss)");
2✔
84
        if (r < 0)
2✔
UNCOV
85
                return bus_log_create_error(r);
×
86

87
        if (argc > 4) {
2✔
88
                _cleanup_free_ char *partition = NULL, *mount_options = NULL;
1✔
89
                const char *options = argv[4];
1✔
90

91
                r = extract_many_words(&options, ":", EXTRACT_CUNESCAPE|EXTRACT_UNESCAPE_SEPARATORS, &partition, &mount_options);
1✔
92
                if (r < 0)
1✔
93
                        return r;
94
                /* Single set of options, applying to the root partition/single filesystem */
95
                if (r == 1) {
1✔
96
                        r = sd_bus_message_append(m, "(ss)", "root", partition);
×
UNCOV
97
                        if (r < 0)
×
UNCOV
98
                                return bus_log_create_error(r);
×
99
                } else if (r > 1) {
1✔
100
                        if (partition_designator_from_string(partition) < 0)
1✔
UNCOV
101
                                return bus_log_create_error(-EINVAL);
×
102

103
                        r = sd_bus_message_append(m, "(ss)", partition, mount_options);
1✔
104
                        if (r < 0)
1✔
UNCOV
105
                                return bus_log_create_error(r);
×
106
                }
107
        }
108

109
        r = sd_bus_message_close_container(m);
2✔
110
        if (r < 0)
2✔
UNCOV
111
                return bus_log_create_error(r);
×
112

113
        r = sd_bus_call(bus, m, -1, &error, NULL);
2✔
114
        if (r < 0)
2✔
UNCOV
115
                return log_error_errno(r, "Failed to mount image: %s", bus_error_message(&error, r));
×
116

117
        return 0;
118
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc