/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 plugins.d/splashy

  • Committer: Teddy Hogeborn
  • Date: 2019-07-30 17:03:57 UTC
  • Revision ID: teddy@recompile.se-20190730170357-jte0piul5mq7j5pr
Server: Reap zombies created by multiprocessing.Process()

When creating checkers as multiprocessing.Process() objects, the
multiprocessing module also creates a parent process (for the
call_pipe() function) to call the actual checker process, but this
parent process is not reaped.  This is not a huge problem, since the
zombie is always reaped automatically the next time the multiprocess
starts a new process, but the zombies can be up to as many as there
have ever been simultaneous checker processes.  To fix this, the
process object must be join():ed when they report completion of the
child checker process.

* mandos (Client): Fix doc string to correctly state that
                   Client.checker is a multiprocess.Process() and not
                   a subprocess.Popen() object.
  (Client.checker_callback): After the returncode of the checker
                             process has been read, wait for the
                             self.checker Process object to finish by
                             calling join() on it.

Reported-by: Peter Palfrader <weasel@debian.org>

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh -e
2
 
 
3
 
# If not on a tty, then get rid of possibly disrupting stderr output
4
 
if ! tty -s; then
5
 
    exec 2>/dev/null
6
 
fi
7
 
 
8
 
test -x /sbin/splashy_update
9
 
 
10
 
# We get some variables from cryptsetup:
11
 
# $cryptsource  the device node, like "/dev/sda3"
12
 
# $crypttarget  the device mapper name, like "sda3_crypt".
13
 
 
14
 
prompt="Enter passphrase to unlock"
15
 
if [ -n "$crypttarget" ]; then
16
 
    prompt="$prompt the disk $crypttarget"
17
 
fi
18
 
if [ -n "$cryptsource" ]; then
19
 
    prompt="$prompt ($cryptsource)"
20
 
fi
21
 
 
22
 
splash_input_password(){
23
 
    /sbin/splashy_update "getpass $1"
24
 
}
25
 
 
26
 
password="`splash_input_password \"$prompt: \"`"
27
 
 
28
 
echo -n "$password"