/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-keygen

  • Committer: Teddy Hogeborn
  • Date: 2016-03-17 20:40:55 UTC
  • Revision ID: teddy@recompile.se-20160317204055-bhsh5xsidq7w5cxu
Client: Fix plymouth agent; broken since 1.7.2.

Fix an very old memory bug in the plymouth agent (which has been
present since its apperance in version 1.2), but which was only
recently detected at run time due to the new -fsanitize=address
compile- time flag, which has been used since version 1.7.2.  This
detection of a memory access violation causes the program to abort,
making the Plymouth graphical boot system unable to accept interactive
input of passwords when using the Mandos client.

* plugins.d/plymouth.c (exec_and_wait): Fix memory allocation bug when
  allocating new_argv.  Also tolerate a zero-length argv.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
3
3
# Mandos key generator - create a new OpenPGP key for a Mandos client
4
4
5
 
# Copyright © 2008-2017 Teddy Hogeborn
6
 
# Copyright © 2008-2017 Björn Påhlsson
 
5
# Copyright © 2008-2016 Teddy Hogeborn
 
6
# Copyright © 2008-2016 Björn Påhlsson
7
7
8
 
# This file is part of Mandos.
9
 
#
10
 
# Mandos is free software: you can redistribute it and/or modify it
11
 
# under the terms of the GNU General Public License as published by
 
8
# This program is free software: you can redistribute it and/or modify
 
9
# it under the terms of the GNU General Public License as published by
12
10
# the Free Software Foundation, either version 3 of the License, or
13
11
# (at your option) any later version.
14
12
#
15
 
#     Mandos is distributed in the hope that it will be useful, but
16
 
#     WITHOUT ANY WARRANTY; without even the implied warranty of
 
13
#     This program is distributed in the hope that it will be useful,
 
14
#     but WITHOUT ANY WARRANTY; without even the implied warranty of
17
15
#     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
16
#     GNU General Public License for more details.
19
17
20
18
# You should have received a copy of the GNU General Public License
21
 
# along with Mandos.  If not, see <http://www.gnu.org/licenses/>.
 
19
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
22
20
23
21
# Contact the authors at <mandos@recompile.se>.
24
22
25
23
 
26
 
VERSION="1.7.16"
 
24
VERSION="1.7.6"
27
25
 
28
26
KEYDIR="/etc/keys/mandos"
29
27
KEYTYPE=RSA
163
161
        [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|*) FORCE=0;;
164
162
    esac
165
163
    
166
 
    if { [ -e "$SECKEYFILE" ] || [ -e "$PUBKEYFILE" ]; } \
167
 
        && [ "$FORCE" -eq 0 ]; then
 
164
    if [ \( -e "$SECKEYFILE" -o -e "$PUBKEYFILE" \) \
 
165
        -a "$FORCE" -eq 0 ]; then
168
166
        echo "Refusing to overwrite old key files; use --force" >&2
169
167
        exit 1
170
168
    fi
220
218
        #Handle: <no-spaces>
221
219
        #%pubring pubring.gpg
222
220
        #%secring secring.gpg
223
 
        %no-protection
224
221
        %commit
225
222
        EOF
226
223
    
288
285
    esac
289
286
    
290
287
    if [ $SSH -eq 1 ]; then
291
 
        for ssh_keytype in ecdsa-sha2-nistp256 ed25519 rsa; do
 
288
        for ssh_keytype in ed25519 rsa; do
292
289
            set +e
293
290
            ssh_fingerprint="`ssh-keyscan -t $ssh_keytype localhost 2>/dev/null`"
294
 
            err=$?
295
291
            set -e
296
 
            if [ $err -ne 0 ]; then
 
292
            if [ $? -ne 0 ]; then
297
293
                ssh_fingerprint=""
298
294
                continue
299
295
            fi
328
324
            cat "$PASSFILE"
329
325
        else
330
326
            tty --quiet && stty -echo
331
 
            echo -n "Enter passphrase: " >/dev/tty
332
 
            read -r first
 
327
            echo -n "Enter passphrase: " >&2
 
328
            read first
333
329
            tty --quiet && echo >&2
334
 
            echo -n "Repeat passphrase: " >/dev/tty
335
 
            read -r second
 
330
            echo -n "Repeat passphrase: " >&2
 
331
            read second
336
332
            if tty --quiet; then
337
333
                echo >&2
338
334
                stty echo