/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to mandos-to-cryptroot-unlock

  • Committer: Teddy Hogeborn
  • Date: 2024-11-17 16:53:00 UTC
  • Revision ID: teddy@recompile.se-20241117165300-02hxm96s8cj9528e
mandos: Avoid closing configured server network socket

If we are passed a pre-created created network socket as a file
descriptor, we must avoid later closing it (when stdin, stdout and
stderr are dup2()ed over with /dev/null) by making sure that the
network file descriptor is not 0, 1, or 2, by creating a new file
descriptor if necessary.

However, when we create a new file descriptor we must check that the
new file descriptor is not 0, 1, or 2 either, and try again until we
get a suitable file descriptor.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
3
3
# Script to get password from plugin-runner to cryptroot-unlock
4
4
5
 
# Copyright © 2018 Teddy Hogeborn
6
 
# Copyright © 2018 Björn Påhlsson
 
5
# Copyright © 2018-2019 Teddy Hogeborn
 
6
# Copyright © 2018-2019 Björn Påhlsson
7
7
8
8
# This file is part of Mandos.
9
9
61
61
# Keep running plugin-runner and trying any password, until either a
62
62
# password is accepted by cryptroot-unlock, or plugin-runner fails, or
63
63
# the file /run/mandos-keep-running has been removed.
64
 
while type cryptroot-unlock >/dev/null 2>&1; do
 
64
while command -v cryptroot-unlock >/dev/null 2>&1; do
65
65
    /lib/mandos/plugin-runner > "$passfile" &
66
66
    echo $! > /run/mandos-plugin-runner.pid
67
67
    wait %% || break