/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/plymouth.xml

  • Committer: teddy at recompile
  • Date: 2020-12-03 20:30:45 UTC
  • Revision ID: teddy@recompile.se-20201203203045-iqd6nq9y5nwalh1x
Minor fix of a test function

In dracut-module/password-agent, the test function
test_send_password_to_socket_EMSGSIZE() (which tests that the
send_password_to_socket() task function aborts properly when getting
EMSGSIZE when writing to the password socket), part of the test code
is supposed to find a message size which definitely does trigger
EMSGSIZE when send()ing to a socket.  Without a "break" in the proper
place, however, the size given is always exactly 1024 bytes too large.

This is very probably not a problem, since a too large message will
still be too large if it is increased by 1024 bytes, and send(2) in
practice checks the size before reading the buffer.  The biggest issue
would be if some version of send(2) would try to look at the last 1024
bytes of the message buffer before checking the message size; this
would then lead to a buffer over-read when running this test function.
(But even then there would be no security implications since the tests
are not run in the normal operation of the program.)

* dracut-module/password-agent.c
  (test_send_password_to_socket_EMSGSIZE): Break out early when ssret
  < 0 and errno == EMSGSIZE; don't allow loop to increase message_size
  again.

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 "plymouth">
5
 
<!ENTITY TIMESTAMP "2011-10-03">
 
5
<!ENTITY TIMESTAMP "2019-07-27">
6
6
<!ENTITY % common SYSTEM "../common.ent">
7
7
%common;
8
8
]>
33
33
    <copyright>
34
34
      <year>2010</year>
35
35
      <year>2011</year>
 
36
      <year>2012</year>
 
37
      <year>2013</year>
 
38
      <year>2014</year>
 
39
      <year>2015</year>
 
40
      <year>2016</year>
 
41
      <year>2017</year>
 
42
      <year>2018</year>
 
43
      <year>2019</year>
36
44
      <holder>Teddy Hogeborn</holder>
37
45
      <holder>Björn Påhlsson</holder>
38
46
    </copyright>
53
61
  <refsynopsisdiv>
54
62
    <cmdsynopsis>
55
63
      <command>&COMMANDNAME;</command>
 
64
      <arg choice="opt">
 
65
        <option>--prompt <replaceable>PROMPT</replaceable></option>
 
66
      </arg>
 
67
      <arg><option>--debug</option></arg>
 
68
    </cmdsynopsis>
 
69
    <cmdsynopsis>
 
70
      <command>&COMMANDNAME;</command>
 
71
      <group choice="req">
 
72
        <arg choice="plain"><option>--help</option></arg>
 
73
        <arg choice="plain"><option>-?</option></arg>
 
74
      </group>
 
75
    </cmdsynopsis>
 
76
    <cmdsynopsis>
 
77
      <command>&COMMANDNAME;</command>
 
78
      <arg choice="plain"><option>--usage</option></arg>
 
79
    </cmdsynopsis>
 
80
    <cmdsynopsis>
 
81
      <command>&COMMANDNAME;</command>
 
82
      <group choice="req">
 
83
        <arg choice="plain"><option>--version</option></arg>
 
84
        <arg choice="plain"><option>-V</option></arg>
 
85
      </group>
56
86
    </cmdsynopsis>
57
87
  </refsynopsisdiv>
58
88
  
94
124
  <refsect1 id="options">
95
125
    <title>OPTIONS</title>
96
126
    <para>
97
 
      This program takes no options.
 
127
      This program is commonly not invoked from the command line; it
 
128
      is normally started by the <application>Mandos</application>
 
129
      plugin runner, see <citerefentry><refentrytitle
 
130
      >plugin-runner</refentrytitle><manvolnum>8mandos</manvolnum>
 
131
      </citerefentry>.  Any command line options this program accepts
 
132
      are therefore normally provided by the plugin runner, and not
 
133
      directly.
98
134
    </para>
 
135
    
 
136
    <variablelist>
 
137
      <varlistentry>
 
138
        <term><option>--prompt=<replaceable
 
139
        >PROMPT</replaceable></option></term>
 
140
        <listitem>
 
141
          <para>
 
142
            The password prompt.  Note that using this option will
 
143
            make this program ignore the <envar>cryptsource</envar>
 
144
            and <envar>crypttarget</envar> environment variables.
 
145
          </para>
 
146
        </listitem>
 
147
      </varlistentry>
 
148
      
 
149
      <varlistentry>
 
150
        <term><option>--debug</option></term>
 
151
        <listitem>
 
152
          <para>
 
153
            Enable debug mode.  This will enable a lot of output to
 
154
            standard error about what the program is doing.  The
 
155
            program will still perform all other functions normally.
 
156
          </para>
 
157
        </listitem>
 
158
      </varlistentry>
 
159
      
 
160
      <varlistentry>
 
161
        <term><option>--help</option></term>
 
162
        <term><option>-?</option></term>
 
163
        <listitem>
 
164
          <para>
 
165
            Gives a help message about options and their meanings.
 
166
          </para>
 
167
        </listitem>
 
168
      </varlistentry>
 
169
      
 
170
      <varlistentry>
 
171
        <term><option>--usage</option></term>
 
172
        <listitem>
 
173
          <para>
 
174
            Gives a short usage message.
 
175
          </para>
 
176
        </listitem>
 
177
      </varlistentry>
 
178
      
 
179
      <varlistentry>
 
180
        <term><option>--version</option></term>
 
181
        <term><option>-V</option></term>
 
182
        <listitem>
 
183
          <para>
 
184
            Prints the program version.
 
185
          </para>
 
186
        </listitem>
 
187
      </varlistentry>
 
188
    </variablelist>
99
189
  </refsect1>
100
190
  
101
191
  <refsect1 id="exit_status">
117
207
        <term><envar>crypttarget</envar></term>
118
208
        <listitem>
119
209
          <para>
120
 
            If set, these environment variables will be assumed to
 
210
            If set, and if the <option>--prompt</option> option is not
 
211
            used, these environment variables will be assumed to
121
212
            contain the source device name and the target device
122
213
            mapper name, respectively, and will be shown as part of
123
214
            the prompt.
125
216
        <para>
126
217
          These variables will normally be inherited from
127
218
          <citerefentry><refentrytitle>plugin-runner</refentrytitle>
128
 
          <manvolnum>8mandos</manvolnum></citerefentry>, which will
129
 
          normally have inherited them from
130
 
          <filename>/scripts/local-top/cryptroot</filename> in the
131
 
          initial <acronym>RAM</acronym> disk environment, which will
132
 
          have set them from parsing kernel arguments and
133
 
          <filename>/conf/conf.d/cryptroot</filename> (also in the
134
 
          initial RAM disk environment), which in turn will have been
135
 
          created when the initial RAM disk image was created by
136
 
          <filename
137
 
          >/usr/share/initramfs-tools/hooks/cryptroot</filename>, by
138
 
          extracting the information of the root file system from
139
 
          <filename >/etc/crypttab</filename>.
 
219
          <manvolnum>8mandos</manvolnum></citerefentry>, which might
 
220
          have in turn inherited them from its calling process.
140
221
        </para>
141
222
        <para>
142
223
          This behavior is meant to exactly mirror the behavior of
143
 
          <command>askpass</command>, the default password prompter.
 
224
          <command>askpass</command>, the default password prompter
 
225
          from initramfs-tools.
144
226
        </para>
145
227
        </listitem>
146
228
      </varlistentry>
200
282
      daemon and starting a new one is ugly, but necessary as long as
201
283
      it does not support aborting a password request.
202
284
    </para>
 
285
    <xi:include href="../bugs.xml"/>
203
286
  </refsect1>
204
287
  
205
288
  <refsect1 id="example">
212
295
    </para>
213
296
    <informalexample>
214
297
      <para>
215
 
        This program takes no options.
 
298
        Normal invocation needs no options:
216
299
      </para>
217
300
      <para>
218
301
        <userinput>&COMMANDNAME;</userinput>
219
302
      </para>
220
303
    </informalexample>
 
304
    <informalexample>
 
305
      <para>
 
306
        Show a different prompt.
 
307
      </para>
 
308
      <para>
 
309
        <userinput>&COMMANDNAME; --prompt=Password</userinput>
 
310
      </para>
 
311
    </informalexample>
221
312
  </refsect1>
222
313
  
223
314
  <refsect1 id="security">
263
354
    <para>
264
355
      <citerefentry><refentrytitle>intro</refentrytitle>
265
356
      <manvolnum>8mandos</manvolnum></citerefentry>,
266
 
      <citerefentry><refentrytitle>crypttab</refentrytitle>
267
 
      <manvolnum>5</manvolnum></citerefentry>,
268
357
      <citerefentry><refentrytitle>plugin-runner</refentrytitle>
269
358
      <manvolnum>8mandos</manvolnum></citerefentry>,
270
359
      <citerefentry><refentrytitle>proc</refentrytitle>