/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 dracut-module/password-agent.xml

  • Committer: teddy at recompile
  • Date: 2020-11-29 22:54:26 UTC
  • Revision ID: teddy@recompile.se-20201129225426-6ud4hwj36zo67igi
Fix flaky test in password-agent

The test_send_password_to_socket_EMSGSIZE function should not use a
hard-coded constant to trigger an EMSGSIZE error from send().

* dracut-module/password-agent.c (send_password_to_socket): Only save
  errno from send() if it returned < 0.  Show strerror(errno) if
  send() does return EMSGSIZE.  Show number of bytes sent if send()
  sends less than all bytes.
  (test_send_password_to_socket_EMSGSIZE): Do not skip this test on
  non-AMD64 platforms.  Try to find a suitable message size to trigger
  EMSGSIZE before testing send_password_to_socket(), and only skip
  this test if such a triggering message size is not found.

Reported-By: Simon McVittie <smcv@debian.org>
Closes: #975457

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4
4
<!ENTITY COMMANDNAME "password-agent">
5
 
<!ENTITY TIMESTAMP "2019-07-24">
 
5
<!ENTITY TIMESTAMP "2020-09-16">
6
6
<!ENTITY % common SYSTEM "../common.ent">
7
7
%common;
8
8
]>
113
113
      be a <citerefentry><refentrytitle>systemd</refentrytitle>
114
114
      <manvolnum>1</manvolnum></citerefentry> <quote>Password
115
115
      Agent</quote> (See <ulink
116
 
      url="https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/"
117
 
      >Password Agents</ulink>).  The aim of this program is therefore
118
 
      to acquire and then send a password to some other program which
 
116
      url="https://systemd.io/PASSWORD_AGENTS/">Password
 
117
      Agents</ulink>).  The aim of this program is therefore to
 
118
      acquire and then send a password to some other program which
119
119
      will use the password to unlock the encrypted root disk.
120
120
    </para>
121
121
    <para>
146
146
            Specify a different agent directory.  The default is
147
147
            <quote><filename class="directory"
148
148
            >/run/systemd/ask-password</filename ></quote> as per the
149
 
            <ulink
150
 
            url="https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/"
151
 
            >Password Agents</ulink> specification.
 
149
            <ulink url="https://systemd.io/PASSWORD_AGENTS/">Password
 
150
            Agents</ulink> specification.
152
151
          </para>
153
152
        </listitem>
154
153
      </varlistentry>
270
269
      responsible for getting a password from the Mandos client
271
270
      program itself, and to send that password to whatever is
272
271
      currently asking for a password using the systemd <ulink
273
 
      url="https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/"
274
 
      >Password Agents</ulink> mechanism.
 
272
      url="https://systemd.io/PASSWORD_AGENTS/">Password
 
273
      Agents</ulink> mechanism.
275
274
    </para>
276
275
    <para>To accomplish this, &COMMANDNAME; runs the
277
276
    <command>mandos-client</command> program (which is the actual
281
280
    password is acquired from the
282
281
    <replaceable>MANDOS_CLIENT</replaceable> program, sends that
283
282
    password (as per the <ulink
284
 
    url="https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/"
285
 
    >Password Agents</ulink> specification) to all currently
286
 
    unanswered password questions.
 
283
    url="https://systemd.io/PASSWORD_AGENTS/">Password Agents</ulink>
 
284
    specification) to all currently unanswered password questions.
287
285
    </para>
288
286
    <para>
289
287
      This program should be started (normally as a systemd service,
330
328
            <para>
331
329
              The default directory to watch for password questions as
332
330
              per the <ulink
333
 
              url="https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/"
334
 
              >Password Agents</ulink> specification; can be changed
335
 
              by the <option>--agent-directory</option> option.
 
331
              url="https://systemd.io/PASSWORD_AGENTS/">Password
 
332
              Agents</ulink> specification; can be changed by the
 
333
              <option>--agent-directory</option> option.
336
334
            </para>
337
335
          </listitem>
338
336
        </varlistentry>
401
399
      <para>
402
400
 
403
401
<!-- do not wrap this line -->
404
 
<userinput>&COMMANDNAME; -- /lib/mandos/mandos-client --pubkey=/etc/mandos/keys/pubkey.txt --seckey=/etc/mandos/keys/seckey.txt --tls-pubkey=/etc/mandos/keys/tls-pubkey.pem --tls-privkey=/etc/mandos/keys/tls-privkey.pem</userinput>
 
402
<userinput>&COMMANDNAME; -- /lib/mandos/plugins.d/mandos-client --pubkey=/etc/mandos/keys/pubkey.txt --seckey=/etc/mandos/keys/seckey.txt --tls-pubkey=/etc/mandos/keys/tls-pubkey.pem --tls-privkey=/etc/mandos/keys/tls-privkey.pem</userinput>
405
403
 
406
404
      </para>
407
405
    </informalexample>
446
444
    <variablelist>
447
445
      <varlistentry>
448
446
        <term>
449
 
          <ulink
450
 
              url="https://www.freedesktop.org/wiki/Software/systemd/PasswordAgents/"
451
 
              >Password Agents</ulink>
 
447
          <ulink url="https://systemd.io/PASSWORD_AGENTS/">Password
 
448
          Agents</ulink>
452
449
        </term>
453
450
        <listitem>
454
451
          <para>