shutdown: paranoia – close all fds we might get passed in

We don't expect any fds (beyond 0…2) to be passed from the service
manager into systemd-shutdown, but let's better be safe then sorry.
This commit is contained in:
Lennart Poettering
2023-04-27 17:56:24 +01:00
committed by Luca Boccassi
parent fd34e27fb9
commit dbecd3d6ee
+6
View File
@@ -338,6 +338,12 @@ int main(int argc, char *argv[]) {
char *arguments[3];
int cmd, r;
/* Close random fds we might have get passed, just for paranoia, before we open any new fds, for
* example for logging. After all this tool's purpose is about detaching any pinned resources, and
* open file descriptors are the primary way to pin resources. Note that we don't really expect any
* fds to be passed here. */
(void) close_all_fds(NULL, 0);
/* The log target defaults to console, but the original systemd process will pass its log target in through a
* command line argument, which will override this default. Also, ensure we'll never log to the journal or
* syslog, as these logging daemons are either already dead or will die very soon. */