/mandos/release

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

« back to all changes in this revision

Viewing changes to debian/mandos.postinst

  • Committer: Teddy Hogeborn
  • Date: 2016-03-17 20:40:55 UTC
  • mto: (237.7.594 trunk)
  • mto: This revision was merged to the branch mainline in revision 341.
  • 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:
15
15
# If prerm fails during replacement due to conflict:
16
16
#       <postinst> abort-remove in-favour <new-package> <version>
17
17
 
18
 
. /usr/share/debconf/confmodule
19
 
 
20
18
set -e
21
19
 
22
20
case "$1" in
50
48
                invoke-rc.d mandos start
51
49
            fi
52
50
        fi
53
 
        if ! dpkg-statoverride --list "/var/lib/mandos" >/dev/null \
54
 
             2>&1; then
55
 
            chown _mandos:_mandos /var/lib/mandos
56
 
            chmod u=rwx,go= /var/lib/mandos
57
 
        fi
58
 
 
59
 
        if dpkg --compare-versions "$2" eq "1.8.0-1" \
60
 
                || dpkg --compare-versions "$2" eq "1.8.0-1~bpo9+1"; then
61
 
            if grep --quiet --regexp='^[[:space:]]*key_id[[:space:]]*=[[:space:]]*[Ee]3[Bb]0[Cc]44298[Ff][Cc]1[Cc]149[Aa][Ff][Bb][Ff]4[Cc]8996[Ff][Bb]92427[Aa][Ee]41[Ee]4649[Bb]934[Cc][Aa]495991[Bb]7852[Bb]855[[:space:]]*$' /etc/mandos/clients.conf; then
62
 
                sed --in-place \
63
 
                    --expression='/^[[:space:]]*key_id[[:space:]]*=[[:space:]]*[Ee]3[Bb]0[Cc]44298[Ff][Cc]1[Cc]149[Aa][Ff][Bb][Ff]4[Cc]8996[Ff][Bb]92427[Aa][Ee]41[Ee]4649[Bb]934[Cc][Aa]495991[Bb]7852[Bb]855[[:space:]]*$/d' \
64
 
                    /etc/mandos/clients.conf
65
 
                invoke-rc.d mandos restart
66
 
                db_version 2.0
67
 
                db_fset mandos/removed_bad_key_ids seen false
68
 
                db_reset mandos/removed_bad_key_ids
69
 
                db_input critical mandos/removed_bad_key_ids || true
70
 
                db_go
71
 
                db_stop
72
 
            fi
73
 
        fi
74
 
 
75
 
        gnutls_version=$(dpkg-query --showformat='${Version}' \
76
 
                                    --show libgnutls30 \
77
 
                                    2>/dev/null || :)
78
 
        if [ -n "$gnutls_version" ] \
79
 
               && dpkg --compare-versions $gnutls_version ge 3.6.6; then
80
 
            db_version 2.0
81
 
            db_input critical mandos/key_id || true
82
 
            db_go
83
 
            db_stop
84
 
        fi
 
51
        chown _mandos:_mandos /var/lib/mandos
85
52
        ;;
86
53
    
87
54
    abort-upgrade|abort-deconfigure|abort-remove)