/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/askpass-fifo.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:
 
1
<?xml version="1.0" encoding="UTF-8"?>
 
2
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 
3
        "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
 
4
<!ENTITY COMMANDNAME "askpass-fifo">
 
5
<!ENTITY TIMESTAMP "2019-02-10">
 
6
<!ENTITY % common SYSTEM "../common.ent">
 
7
%common;
 
8
]>
 
9
 
 
10
<refentry xmlns:xi="http://www.w3.org/2001/XInclude">
 
11
  <refentryinfo>
 
12
    <title>Mandos Manual</title>
 
13
    <!-- NWalsh’s docbook scripts use this to generate the footer: -->
 
14
    <productname>Mandos</productname>
 
15
    <productnumber>&version;</productnumber>
 
16
    <date>&TIMESTAMP;</date>
 
17
    <authorgroup>
 
18
      <author>
 
19
        <firstname>Björn</firstname>
 
20
        <surname>Påhlsson</surname>
 
21
        <address>
 
22
          <email>belorn@recompile.se</email>
 
23
        </address>
 
24
      </author>
 
25
      <author>
 
26
        <firstname>Teddy</firstname>
 
27
        <surname>Hogeborn</surname>
 
28
        <address>
 
29
          <email>teddy@recompile.se</email>
 
30
        </address>
 
31
      </author>
 
32
    </authorgroup>
 
33
    <copyright>
 
34
      <year>2008</year>
 
35
      <year>2009</year>
 
36
      <year>2010</year>
 
37
      <year>2011</year>
 
38
      <year>2012</year>
 
39
      <year>2013</year>
 
40
      <year>2014</year>
 
41
      <year>2015</year>
 
42
      <year>2016</year>
 
43
      <year>2017</year>
 
44
      <year>2018</year>
 
45
      <year>2019</year>
 
46
      <holder>Teddy Hogeborn</holder>
 
47
      <holder>Björn Påhlsson</holder>
 
48
    </copyright>
 
49
  </refentryinfo>
 
50
  
 
51
  <refmeta>
 
52
    <refentrytitle>&COMMANDNAME;</refentrytitle>
 
53
    <manvolnum>8mandos</manvolnum>
 
54
  </refmeta>
 
55
  
 
56
  <refnamediv>
 
57
    <refname><command>&COMMANDNAME;</command></refname>
 
58
    <refpurpose>Mandos plugin to get a password from a
 
59
    FIFO.</refpurpose>
 
60
  </refnamediv>
 
61
  
 
62
  <refsynopsisdiv>
 
63
    <cmdsynopsis>
 
64
      <command>&COMMANDNAME;</command>
 
65
    </cmdsynopsis>
 
66
  </refsynopsisdiv>
 
67
  
 
68
  <refsect1 id="description">
 
69
    <title>DESCRIPTION</title>
 
70
    <para>
 
71
      This program reads a password from a <acronym>FIFO</acronym> and
 
72
      outputs it to standard output.
 
73
    </para>
 
74
    <para>
 
75
      This program is not very useful on its own.  This program is
 
76
      really meant to run as a plugin in the <application
 
77
      >Mandos</application> client-side system, where it is used as a
 
78
      fallback and alternative to retrieving passwords from a
 
79
      <application >Mandos</application> server.
 
80
    </para>
 
81
    <para>
 
82
      This program is meant to be imitate a feature of the
 
83
      <command>askpass</command> program, so that programs written to
 
84
      interface with it can keep working under the
 
85
      <application>Mandos</application> system.
 
86
    </para>
 
87
  </refsect1>
 
88
  
 
89
  <refsect1 id="options">
 
90
    <title>OPTIONS</title>
 
91
    <para>
 
92
      This program takes no options.
 
93
    </para>
 
94
  </refsect1>
 
95
  
 
96
  <refsect1 id="exit_status">
 
97
    <title>EXIT STATUS</title>
 
98
    <para>
 
99
      If exit status is 0, the output from the program is the password
 
100
      as it was read.  Otherwise, if exit status is other than 0, the
 
101
      program was interrupted or encountered an error, and any output
 
102
      so far could be corrupt and/or truncated, and should therefore
 
103
      be ignored.
 
104
    </para>
 
105
  </refsect1>
 
106
  
 
107
  <refsect1 id="files">
 
108
    <title>FILES</title>
 
109
    <variablelist>
 
110
      <varlistentry>
 
111
        <term><filename>/lib/cryptsetup/passfifo</filename></term>
 
112
        <listitem>
 
113
          <para>
 
114
            This is the <acronym>FIFO</acronym> where this program
 
115
            will read the password.  If it does not exist, it will be
 
116
            created.
 
117
          </para>
 
118
        </listitem>
 
119
      </varlistentry>
 
120
    </variablelist>
 
121
  </refsect1>
 
122
  
 
123
  <refsect1 id="bugs">
 
124
    <title>BUGS</title>
 
125
    <xi:include href="../bugs.xml"/>
 
126
  </refsect1>
 
127
  
 
128
  <refsect1 id="example">
 
129
    <title>EXAMPLE</title>
 
130
    <para>
 
131
      Note that normally, this program will not be invoked directly,
 
132
      but instead started by the Mandos <citerefentry><refentrytitle
 
133
      >plugin-runner</refentrytitle><manvolnum>8mandos</manvolnum>
 
134
      </citerefentry>.
 
135
    </para>
 
136
    <informalexample>
 
137
      <para>
 
138
        This program takes no options.
 
139
      </para>
 
140
      <para>
 
141
        <userinput>&COMMANDNAME;</userinput>
 
142
      </para>
 
143
    </informalexample>
 
144
  </refsect1>
 
145
  
 
146
  <refsect1 id="security">
 
147
    <title>SECURITY</title>
 
148
    <para>
 
149
      The only thing that could be considered worthy of note is
 
150
      this:  This program is meant to be run by <citerefentry>
 
151
      <refentrytitle>plugin-runner</refentrytitle><manvolnum
 
152
      >8mandos</manvolnum></citerefentry>, and will, when run
 
153
      standalone, outside, in a normal environment, immediately output
 
154
      on its standard output any presumably secret password it just
 
155
      received.  Therefore, when running this program standalone
 
156
      (which should never normally be done), take care not to type in
 
157
      any real secret password by force of habit, since it would then
 
158
      immediately be shown as output.
 
159
    </para>
 
160
  </refsect1>
 
161
  
 
162
  <refsect1 id="see_also">
 
163
    <title>SEE ALSO</title>
 
164
    <para>
 
165
      <citerefentry><refentrytitle>intro</refentrytitle>
 
166
      <manvolnum>8mandos</manvolnum></citerefentry>,
 
167
      <citerefentry><refentrytitle>fifo</refentrytitle>
 
168
      <manvolnum>7</manvolnum></citerefentry>,
 
169
      <citerefentry><refentrytitle>plugin-runner</refentrytitle>
 
170
      <manvolnum>8mandos</manvolnum></citerefentry>
 
171
    </para>
 
172
  </refsect1>
 
173
</refentry>
 
174
<!-- Local Variables: -->
 
175
<!-- time-stamp-start: "<!ENTITY TIMESTAMP [\"']" -->
 
176
<!-- time-stamp-end: "[\"']>" -->
 
177
<!-- time-stamp-format: "%:y-%02m-%02d" -->
 
178
<!-- End: -->