X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fautomount.c;h=4a509efaf4895fd38ccfa47a1218014f8f8258de;hb=c43b2132f37264600cc26e07c8d85dfdd6c969f0;hp=d47e6fa8dc3214b6a11bf29dfce8bcbd517096ea;hpb=82a2b6bb5e4e5d294f09af778c48974a7857afb6;p=elogind.git diff --git a/src/core/automount.c b/src/core/automount.c index d47e6fa8d..4a509efaf 100644 --- a/src/core/automount.c +++ b/src/core/automount.c @@ -32,8 +32,6 @@ #include "unit.h" #include "automount.h" #include "mount.h" -#include "load-fragment.h" -#include "load-dropin.h" #include "unit-name.h" #include "special.h" #include "label.h" @@ -449,7 +447,9 @@ int automount_send_ready(Automount *a, int status) { static void automount_enter_waiting(Automount *a) { _cleanup_close_ int ioctl_fd = -1; int p[2] = { -1, -1 }; - char name[32], options[128]; + char name[sizeof("systemd-")-1 + DECIMAL_STR_MAX(pid_t) + 1]; + char options[sizeof("fd=,pgrp=,minproto=5,maxproto=5,direct")-1 + + DECIMAL_STR_MAX(int) + DECIMAL_STR_MAX(gid_t) + 1]; bool mounted = false; int r, dev_autofs_fd; struct stat st; @@ -477,12 +477,8 @@ static void automount_enter_waiting(Automount *a) { goto fail; } - snprintf(options, sizeof(options), "fd=%i,pgrp=%u,minproto=5,maxproto=5,direct", p[1], (unsigned) getpgrp()); - char_array_0(options); - - snprintf(name, sizeof(name), "systemd-%u", (unsigned) getpid()); - char_array_0(name); - + xsprintf(options, "fd=%i,pgrp="PID_FMT",minproto=5,maxproto=5,direct", p[1], getpgrp()); + xsprintf(name, "systemd-"PID_FMT, getpid()); if (mount(name, a->where, "autofs", 0, options) < 0) { r = -errno; goto fail;