core/cgroup: fix compile error
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Nov 2023 04:02:02 +0000 (13:02 +0900)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 28 Nov 2023 09:35:52 +0000 (10:35 +0100)
With gcc-13,
```
CFLAGS="-O3 -fno-semantic-interposition" meson setup build
```
triggers the following error:
```
../src/core/cgroup.c: In function ‘cgroup_context_dump’:
../src/core/cgroup.c:633:44: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
  633 |                         "%sDeviceAllow: %s %s\n",
      |                                            ^~
cc1: some warnings being treated as errors
```

Fixes #30223.

src/core/cgroup.c

index 10678dc..e1bf90d 100644 (file)
@@ -629,11 +629,12 @@ void cgroup_context_dump(Unit *u, FILE* f, const char *prefix) {
                         prefix, FORMAT_TIMESPAN(c->memory_pressure_threshold_usec, 1));
 
         LIST_FOREACH(device_allow, a, c->device_allow)
+                /* strna() below should be redundant, for avoiding -Werror=format-overflow= error. See #30223. */
                 fprintf(f,
                         "%sDeviceAllow: %s %s\n",
                         prefix,
                         a->path,
-                        cgroup_device_permissions_to_string(a->permissions));
+                        strna(cgroup_device_permissions_to_string(a->permissions)));
 
         LIST_FOREACH(device_weights, iw, c->io_device_weights)
                 fprintf(f,