~ubuntu-branches/ubuntu/hardy/openswan/hardy-updates

« back to all changes in this revision

Viewing changes to lib/liblwres/man/lwres_gnba.html

  • Committer: Bazaar Package Importer
  • Author(s): Rene Mayrhofer
  • Date: 2005-01-27 16:10:11 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20050127161011-idgybmyz3vwhpfiq
Tags: 2.3.0-2
Urgency HIGH due to security issue and problems with build-deps in sarge.
* Fix the security issue. Please see
  http://www.idefense.com/application/poi/display?id=190&
      type=vulnerabilities&flashstatus=false
  for more details. Thanks to Martin Schulze for informing me about
  this issue.
  Closes: #292458: Openswan XAUTH/PAM Buffer Overflow Vulnerability
* Added a Build-Dependency to lynx.
  Closes: #291143: openswan: FTBFS: Missing build dependency.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<!--
2
 
 - Copyright (C) 2000, 2001  Internet Software Consortium.
3
 
 - 
4
 
 - Permission to use, copy, modify, and distribute this software for any
5
 
 - purpose with or without fee is hereby granted, provided that the above
6
 
 - copyright notice and this permission notice appear in all copies.
7
 
 - 
8
 
 - THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
9
 
 - DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
10
 
 - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
11
 
 - INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
12
 
 - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
13
 
 - FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
14
 
 - NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
15
 
 - WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
 
-->
17
 
<HTML
18
 
><HEAD
19
 
><TITLE
20
 
>lwres_gnba</TITLE
21
 
><META
22
 
NAME="GENERATOR"
23
 
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
24
 
"></HEAD
25
 
><BODY
26
 
CLASS="REFENTRY"
27
 
BGCOLOR="#FFFFFF"
28
 
TEXT="#000000"
29
 
LINK="#0000FF"
30
 
VLINK="#840084"
31
 
ALINK="#0000FF"
32
 
><H1
33
 
><A
34
 
NAME="AEN1"
35
 
>lwres_gnba</A
36
 
></H1
37
 
><DIV
38
 
CLASS="REFNAMEDIV"
39
 
><A
40
 
NAME="AEN8"
41
 
></A
42
 
><H2
43
 
>Name</H2
44
 
>lwres_gnbarequest_render, lwres_gnbaresponse_render, lwres_gnbarequest_parse, lwres_gnbaresponse_parse, lwres_gnbaresponse_free, lwres_gnbarequest_free&nbsp;--&nbsp;lightweight resolver getnamebyaddress message handling</DIV
45
 
><DIV
46
 
CLASS="REFSYNOPSISDIV"
47
 
><A
48
 
NAME="AEN16"
49
 
></A
50
 
><H2
51
 
>Synopsis</H2
52
 
><DIV
53
 
CLASS="FUNCSYNOPSIS"
54
 
><A
55
 
NAME="AEN17"
56
 
></A
57
 
><P
58
 
></P
59
 
><PRE
60
 
CLASS="FUNCSYNOPSISINFO"
61
 
>#include &lt;lwres/lwres.h&gt;</PRE
62
 
><P
63
 
><CODE
64
 
><CODE
65
 
CLASS="FUNCDEF"
66
 
>lwres_result_t
67
 
lwres_gnbarequest_render</CODE
68
 
>(lwres_context_t *ctx, lwres_gnbarequest_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);</CODE
69
 
></P
70
 
><P
71
 
><CODE
72
 
><CODE
73
 
CLASS="FUNCDEF"
74
 
>lwres_result_t
75
 
lwres_gnbaresponse_render</CODE
76
 
>(lwres_context_t *ctx, lwres_gnbaresponse_t *req, lwres_lwpacket_t *pkt, lwres_buffer_t *b);</CODE
77
 
></P
78
 
><P
79
 
><CODE
80
 
><CODE
81
 
CLASS="FUNCDEF"
82
 
>lwres_result_t
83
 
lwres_gnbarequest_parse</CODE
84
 
>(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gnbarequest_t **structp);</CODE
85
 
></P
86
 
><P
87
 
><CODE
88
 
><CODE
89
 
CLASS="FUNCDEF"
90
 
>lwres_result_t
91
 
lwres_gnbaresponse_parse</CODE
92
 
>(lwres_context_t *ctx, lwres_buffer_t *b, lwres_lwpacket_t *pkt, lwres_gnbaresponse_t **structp);</CODE
93
 
></P
94
 
><P
95
 
><CODE
96
 
><CODE
97
 
CLASS="FUNCDEF"
98
 
>void
99
 
lwres_gnbaresponse_free</CODE
100
 
>(lwres_context_t *ctx, lwres_gnbaresponse_t **structp);</CODE
101
 
></P
102
 
><P
103
 
><CODE
104
 
><CODE
105
 
CLASS="FUNCDEF"
106
 
>void
107
 
lwres_gnbarequest_free</CODE
108
 
>(lwres_context_t *ctx, lwres_gnbarequest_t **structp);</CODE
109
 
></P
110
 
><P
111
 
></P
112
 
></DIV
113
 
></DIV
114
 
><DIV
115
 
CLASS="REFSECT1"
116
 
><A
117
 
NAME="AEN61"
118
 
></A
119
 
><H2
120
 
>DESCRIPTION</H2
121
 
><P
122
 
>These are low-level routines for creating and parsing
123
 
lightweight resolver address-to-name lookup request and 
124
 
response messages.</P
125
 
><P
126
 
>There are four main functions for the getnamebyaddr opcode.
127
 
One render function converts a getnamebyaddr request structure &mdash;
128
 
<SPAN
129
 
CLASS="TYPE"
130
 
>lwres_gnbarequest_t</SPAN
131
 
> &mdash;
132
 
to the lightweight resolver's canonical format.
133
 
It is complemented by a parse function that converts a packet in this
134
 
canonical format to a getnamebyaddr request structure.
135
 
Another render function converts the getnamebyaddr response structure &mdash;
136
 
<SPAN
137
 
CLASS="TYPE"
138
 
>lwres_gnbaresponse_t</SPAN
139
 
>
140
 
to the canonical format.
141
 
This is complemented by a parse function which converts a packet in
142
 
canonical format to a getnamebyaddr response structure.</P
143
 
><P
144
 
>These structures are defined in
145
 
<TT
146
 
CLASS="FILENAME"
147
 
>lwres/lwres.h</TT
148
 
>.
149
 
They are shown below.
150
 
<PRE
151
 
CLASS="PROGRAMLISTING"
152
 
>#define LWRES_OPCODE_GETNAMEBYADDR      0x00010002U
153
 
 
154
 
typedef struct {
155
 
        lwres_uint32_t  flags;
156
 
        lwres_addr_t    addr;
157
 
} lwres_gnbarequest_t;
158
 
 
159
 
typedef struct {
160
 
        lwres_uint32_t  flags;
161
 
        lwres_uint16_t  naliases;
162
 
        char           *realname;
163
 
        char          **aliases;
164
 
        lwres_uint16_t  realnamelen;
165
 
        lwres_uint16_t *aliaslen;
166
 
        void           *base;
167
 
        size_t          baselen;
168
 
} lwres_gnbaresponse_t;</PRE
169
 
></P
170
 
><P
171
 
><TT
172
 
CLASS="FUNCTION"
173
 
>lwres_gnbarequest_render()</TT
174
 
>
175
 
uses resolver context
176
 
<TT
177
 
CLASS="VARNAME"
178
 
>ctx</TT
179
 
>
180
 
to convert getnamebyaddr request structure
181
 
<TT
182
 
CLASS="VARNAME"
183
 
>req</TT
184
 
>
185
 
to canonical format.
186
 
The packet header structure
187
 
<TT
188
 
CLASS="VARNAME"
189
 
>pkt</TT
190
 
>
191
 
is initialised and transferred to
192
 
buffer
193
 
<TT
194
 
CLASS="VARNAME"
195
 
>b</TT
196
 
>.
197
 
The contents of
198
 
<TT
199
 
CLASS="VARNAME"
200
 
>*req</TT
201
 
>
202
 
are then appended to the buffer in canonical format.
203
 
<TT
204
 
CLASS="FUNCTION"
205
 
>lwres_gnbaresponse_render()</TT
206
 
>
207
 
performs the same task, except it converts a getnamebyaddr response structure
208
 
<SPAN
209
 
CLASS="TYPE"
210
 
>lwres_gnbaresponse_t</SPAN
211
 
>
212
 
to the lightweight resolver's canonical format.</P
213
 
><P
214
 
><TT
215
 
CLASS="FUNCTION"
216
 
>lwres_gnbarequest_parse()</TT
217
 
>
218
 
uses context
219
 
<TT
220
 
CLASS="VARNAME"
221
 
>ctx</TT
222
 
>
223
 
to convert the contents of packet
224
 
<TT
225
 
CLASS="VARNAME"
226
 
>pkt</TT
227
 
>
228
 
to a
229
 
<SPAN
230
 
CLASS="TYPE"
231
 
>lwres_gnbarequest_t</SPAN
232
 
>
233
 
structure.
234
 
Buffer
235
 
<TT
236
 
CLASS="VARNAME"
237
 
>b</TT
238
 
>
239
 
provides space to be used for storing this structure.
240
 
When the function succeeds, the resulting
241
 
<SPAN
242
 
CLASS="TYPE"
243
 
>lwres_gnbarequest_t</SPAN
244
 
>
245
 
is made available through
246
 
<TT
247
 
CLASS="VARNAME"
248
 
>*structp</TT
249
 
>.
250
 
<TT
251
 
CLASS="FUNCTION"
252
 
>lwres_gnbaresponse_parse()</TT
253
 
>
254
 
offers the same semantics as
255
 
<TT
256
 
CLASS="FUNCTION"
257
 
>lwres_gnbarequest_parse()</TT
258
 
>
259
 
except it yields a
260
 
<SPAN
261
 
CLASS="TYPE"
262
 
>lwres_gnbaresponse_t</SPAN
263
 
>
264
 
structure.</P
265
 
><P
266
 
><TT
267
 
CLASS="FUNCTION"
268
 
>lwres_gnbaresponse_free()</TT
269
 
>
270
 
and
271
 
<TT
272
 
CLASS="FUNCTION"
273
 
>lwres_gnbarequest_free()</TT
274
 
>
275
 
release the memory in resolver context
276
 
<TT
277
 
CLASS="VARNAME"
278
 
>ctx</TT
279
 
>
280
 
that was allocated to the
281
 
<SPAN
282
 
CLASS="TYPE"
283
 
>lwres_gnbaresponse_t</SPAN
284
 
>
285
 
or
286
 
<SPAN
287
 
CLASS="TYPE"
288
 
>lwres_gnbarequest_t</SPAN
289
 
>
290
 
structures referenced via
291
 
<TT
292
 
CLASS="VARNAME"
293
 
>structp</TT
294
 
>.
295
 
Any memory associated with ancillary buffers and strings for those
296
 
structures is also discarded.</P
297
 
></DIV
298
 
><DIV
299
 
CLASS="REFSECT1"
300
 
><A
301
 
NAME="AEN97"
302
 
></A
303
 
><H2
304
 
>RETURN VALUES</H2
305
 
><P
306
 
>The getnamebyaddr opcode functions
307
 
<TT
308
 
CLASS="FUNCTION"
309
 
>lwres_gnbarequest_render()</TT
310
 
>,
311
 
<TT
312
 
CLASS="FUNCTION"
313
 
>lwres_gnbaresponse_render()</TT
314
 
>
315
 
<TT
316
 
CLASS="FUNCTION"
317
 
>lwres_gnbarequest_parse()</TT
318
 
>
319
 
and
320
 
<TT
321
 
CLASS="FUNCTION"
322
 
>lwres_gnbaresponse_parse()</TT
323
 
>
324
 
all return
325
 
<SPAN
326
 
CLASS="ERRORCODE"
327
 
>LWRES_R_SUCCESS</SPAN
328
 
>
329
 
on success.
330
 
They return
331
 
<SPAN
332
 
CLASS="ERRORCODE"
333
 
>LWRES_R_NOMEMORY</SPAN
334
 
>
335
 
if memory allocation fails.
336
 
<SPAN
337
 
CLASS="ERRORCODE"
338
 
>LWRES_R_UNEXPECTEDEND</SPAN
339
 
>
340
 
is returned if the available space in the buffer
341
 
<TT
342
 
CLASS="VARNAME"
343
 
>b</TT
344
 
>
345
 
is too small to accommodate the packet header or the
346
 
<SPAN
347
 
CLASS="TYPE"
348
 
>lwres_gnbarequest_t</SPAN
349
 
>
350
 
and
351
 
<SPAN
352
 
CLASS="TYPE"
353
 
>lwres_gnbaresponse_t</SPAN
354
 
>
355
 
structures.
356
 
<TT
357
 
CLASS="FUNCTION"
358
 
>lwres_gnbarequest_parse()</TT
359
 
>
360
 
and
361
 
<TT
362
 
CLASS="FUNCTION"
363
 
>lwres_gnbaresponse_parse()</TT
364
 
>
365
 
will return
366
 
<SPAN
367
 
CLASS="ERRORCODE"
368
 
>LWRES_R_UNEXPECTEDEND</SPAN
369
 
>
370
 
if the buffer is not empty after decoding the received packet.
371
 
These functions will return
372
 
<SPAN
373
 
CLASS="ERRORCODE"
374
 
>LWRES_R_FAILURE</SPAN
375
 
>
376
 
if
377
 
<TT
378
 
CLASS="STRUCTFIELD"
379
 
><I
380
 
>pktflags</I
381
 
></TT
382
 
>
383
 
in the packet header structure
384
 
<SPAN
385
 
CLASS="TYPE"
386
 
>lwres_lwpacket_t</SPAN
387
 
>
388
 
indicate that the packet is not a response to an earlier query.</P
389
 
></DIV
390
 
><DIV
391
 
CLASS="REFSECT1"
392
 
><A
393
 
NAME="AEN116"
394
 
></A
395
 
><H2
396
 
>SEE ALSO</H2
397
 
><P
398
 
><SPAN
399
 
CLASS="CITEREFENTRY"
400
 
><SPAN
401
 
CLASS="REFENTRYTITLE"
402
 
>lwres_packet</SPAN
403
 
>(3)</SPAN
404
 
>.</P
405
 
></DIV
406
 
></BODY
407
 
></HTML
408
 
>
 
 
b'\\ No newline at end of file'