linux/net/rxrpc/ar-key.c
<<
>>
Prefs
   1/* RxRPC key management
   2 *
   3 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
   4 * Written by David Howells (dhowells@redhat.com)
   5 *
   6 * This program is free software; you can redistribute it and/or
   7 * modify it under the terms of the GNU General Public License
   8 * as published by the Free Software Foundation; either version
   9 * 2 of the License, or (at your option) any later version.
  10 *
  11 * RxRPC keys should have a description of describing their purpose:
  12 *      "afs@CAMBRIDGE.REDHAT.COM>
  13 */
  14
  15#include <linux/module.h>
  16#include <linux/net.h>
  17#include <linux/skbuff.h>
  18#include <linux/key-type.h>
  19#include <linux/crypto.h>
  20#include <linux/ctype.h>
  21#include <linux/slab.h>
  22#include <net/sock.h>
  23#include <net/af_rxrpc.h>
  24#include <keys/rxrpc-type.h>
  25#include <keys/user-type.h>
  26#include "ar-internal.h"
  27
  28static int rxrpc_vet_description_s(const char *);
  29static int rxrpc_instantiate(struct key *, const void *, size_t);
  30static int rxrpc_instantiate_s(struct key *, const void *, size_t);
  31static void rxrpc_destroy(struct key *);
  32static void rxrpc_destroy_s(struct key *);
  33static void rxrpc_describe(const struct key *, struct seq_file *);
  34static long rxrpc_read(const struct key *, char __user *, size_t);
  35
  36/*
  37 * rxrpc defined keys take an arbitrary string as the description and an
  38 * arbitrary blob of data as the payload
  39 */
  40struct key_type key_type_rxrpc = {
  41        .name           = "rxrpc",
  42        .instantiate    = rxrpc_instantiate,
  43        .match          = user_match,
  44        .destroy        = rxrpc_destroy,
  45        .describe       = rxrpc_describe,
  46        .read           = rxrpc_read,
  47};
  48EXPORT_SYMBOL(key_type_rxrpc);
  49
  50/*
  51 * rxrpc server defined keys take "<serviceId>:<securityIndex>" as the
  52 * description and an 8-byte decryption key as the payload
  53 */
  54struct key_type key_type_rxrpc_s = {
  55        .name           = "rxrpc_s",
  56        .vet_description = rxrpc_vet_description_s,
  57        .instantiate    = rxrpc_instantiate_s,
  58        .match          = user_match,
  59        .destroy        = rxrpc_destroy_s,
  60        .describe       = rxrpc_describe,
  61};
  62
  63/*
  64 * Vet the description for an RxRPC server key
  65 */
  66static int rxrpc_vet_description_s(const char *desc)
  67{
  68        unsigned long num;
  69        char *p;
  70
  71        num = simple_strtoul(desc, &p, 10);
  72        if (*p != ':' || num > 65535)
  73                return -EINVAL;
  74        num = simple_strtoul(p + 1, &p, 10);
  75        if (*p || num < 1 || num > 255)
  76                return -EINVAL;
  77        return 0;
  78}
  79
  80/*
  81 * parse an RxKAD type XDR format token
  82 * - the caller guarantees we have at least 4 words
  83 */
  84static int rxrpc_instantiate_xdr_rxkad(struct key *key, const __be32 *xdr,
  85                                       unsigned int toklen)
  86{
  87        struct rxrpc_key_token *token, **pptoken;
  88        size_t plen;
  89        u32 tktlen;
  90        int ret;
  91
  92        _enter(",{%x,%x,%x,%x},%u",
  93               ntohl(xdr[0]), ntohl(xdr[1]), ntohl(xdr[2]), ntohl(xdr[3]),
  94               toklen);
  95
  96        if (toklen <= 8 * 4)
  97                return -EKEYREJECTED;
  98        tktlen = ntohl(xdr[7]);
  99        _debug("tktlen: %x", tktlen);
 100        if (tktlen > AFSTOKEN_RK_TIX_MAX)
 101                return -EKEYREJECTED;
 102        if (8 * 4 + tktlen != toklen)
 103                return -EKEYREJECTED;
 104
 105        plen = sizeof(*token) + sizeof(*token->kad) + tktlen;
 106        ret = key_payload_reserve(key, key->datalen + plen);
 107        if (ret < 0)
 108                return ret;
 109
 110        plen -= sizeof(*token);
 111        token = kzalloc(sizeof(*token), GFP_KERNEL);
 112        if (!token)
 113                return -ENOMEM;
 114
 115        token->kad = kzalloc(plen, GFP_KERNEL);
 116        if (!token->kad) {
 117                kfree(token);
 118                return -ENOMEM;
 119        }
 120
 121        token->security_index   = RXRPC_SECURITY_RXKAD;
 122        token->kad->ticket_len  = tktlen;
 123        token->kad->vice_id     = ntohl(xdr[0]);
 124        token->kad->kvno        = ntohl(xdr[1]);
 125        token->kad->start       = ntohl(xdr[4]);
 126        token->kad->expiry      = ntohl(xdr[5]);
 127        token->kad->primary_flag = ntohl(xdr[6]);
 128        memcpy(&token->kad->session_key, &xdr[2], 8);
 129        memcpy(&token->kad->ticket, &xdr[8], tktlen);
 130
 131        _debug("SCIX: %u", token->security_index);
 132        _debug("TLEN: %u", token->kad->ticket_len);
 133        _debug("EXPY: %x", token->kad->expiry);
 134        _debug("KVNO: %u", token->kad->kvno);
 135        _debug("PRIM: %u", token->kad->primary_flag);
 136        _debug("SKEY: %02x%02x%02x%02x%02x%02x%02x%02x",
 137               token->kad->session_key[0], token->kad->session_key[1],
 138               token->kad->session_key[2], token->kad->session_key[3],
 139               token->kad->session_key[4], token->kad->session_key[5],
 140               token->kad->session_key[6], token->kad->session_key[7]);
 141        if (token->kad->ticket_len >= 8)
 142                _debug("TCKT: %02x%02x%02x%02x%02x%02x%02x%02x",
 143                       token->kad->ticket[0], token->kad->ticket[1],
 144                       token->kad->ticket[2], token->kad->ticket[3],
 145                       token->kad->ticket[4], token->kad->ticket[5],
 146                       token->kad->ticket[6], token->kad->ticket[7]);
 147
 148        /* count the number of tokens attached */
 149        key->type_data.x[0]++;
 150
 151        /* attach the data */
 152        for (pptoken = (struct rxrpc_key_token **)&key->payload.data;
 153             *pptoken;
 154             pptoken = &(*pptoken)->next)
 155                continue;
 156        *pptoken = token;
 157        if (token->kad->expiry < key->expiry)
 158                key->expiry = token->kad->expiry;
 159
 160        _leave(" = 0");
 161        return 0;
 162}
 163
 164static void rxrpc_free_krb5_principal(struct krb5_principal *princ)
 165{
 166        int loop;
 167
 168        if (princ->name_parts) {
 169                for (loop = princ->n_name_parts - 1; loop >= 0; loop--)
 170                        kfree(princ->name_parts[loop]);
 171                kfree(princ->name_parts);
 172        }
 173        kfree(princ->realm);
 174}
 175
 176static void rxrpc_free_krb5_tagged(struct krb5_tagged_data *td)
 177{
 178        kfree(td->data);
 179}
 180
 181/*
 182 * free up an RxK5 token
 183 */
 184static void rxrpc_rxk5_free(struct rxk5_key *rxk5)
 185{
 186        int loop;
 187
 188        rxrpc_free_krb5_principal(&rxk5->client);
 189        rxrpc_free_krb5_principal(&rxk5->server);
 190        rxrpc_free_krb5_tagged(&rxk5->session);
 191
 192        if (rxk5->addresses) {
 193                for (loop = rxk5->n_addresses - 1; loop >= 0; loop--)
 194                        rxrpc_free_krb5_tagged(&rxk5->addresses[loop]);
 195                kfree(rxk5->addresses);
 196        }
 197        if (rxk5->authdata) {
 198                for (loop = rxk5->n_authdata - 1; loop >= 0; loop--)
 199                        rxrpc_free_krb5_tagged(&rxk5->authdata[loop]);
 200                kfree(rxk5->authdata);
 201        }
 202
 203        kfree(rxk5->ticket);
 204        kfree(rxk5->ticket2);
 205        kfree(rxk5);
 206}
 207
 208/*
 209 * extract a krb5 principal
 210 */
 211static int rxrpc_krb5_decode_principal(struct krb5_principal *princ,
 212                                       const __be32 **_xdr,
 213                                       unsigned int *_toklen)
 214{
 215        const __be32 *xdr = *_xdr;
 216        unsigned int toklen = *_toklen, n_parts, loop, tmp;
 217
 218        /* there must be at least one name, and at least #names+1 length
 219         * words */
 220        if (toklen <= 12)
 221                return -EINVAL;
 222
 223        _enter(",{%x,%x,%x},%u",
 224               ntohl(xdr[0]), ntohl(xdr[1]), ntohl(xdr[2]), toklen);
 225
 226        n_parts = ntohl(*xdr++);
 227        toklen -= 4;
 228        if (n_parts <= 0 || n_parts > AFSTOKEN_K5_COMPONENTS_MAX)
 229                return -EINVAL;
 230        princ->n_name_parts = n_parts;
 231
 232        if (toklen <= (n_parts + 1) * 4)
 233                return -EINVAL;
 234
 235        princ->name_parts = kcalloc(n_parts, sizeof(char *), GFP_KERNEL);
 236        if (!princ->name_parts)
 237                return -ENOMEM;
 238
 239        for (loop = 0; loop < n_parts; loop++) {
 240                if (toklen < 4)
 241                        return -EINVAL;
 242                tmp = ntohl(*xdr++);
 243                toklen -= 4;
 244                if (tmp <= 0 || tmp > AFSTOKEN_STRING_MAX)
 245                        return -EINVAL;
 246                if (tmp > toklen)
 247                        return -EINVAL;
 248                princ->name_parts[loop] = kmalloc(tmp + 1, GFP_KERNEL);
 249                if (!princ->name_parts[loop])
 250                        return -ENOMEM;
 251                memcpy(princ->name_parts[loop], xdr, tmp);
 252                princ->name_parts[loop][tmp] = 0;
 253                tmp = (tmp + 3) & ~3;
 254                toklen -= tmp;
 255                xdr += tmp >> 2;
 256        }
 257
 258        if (toklen < 4)
 259                return -EINVAL;
 260        tmp = ntohl(*xdr++);
 261        toklen -= 4;
 262        if (tmp <= 0 || tmp > AFSTOKEN_K5_REALM_MAX)
 263                return -EINVAL;
 264        if (tmp > toklen)
 265                return -EINVAL;
 266        princ->realm = kmalloc(tmp + 1, GFP_KERNEL);
 267        if (!princ->realm)
 268                return -ENOMEM;
 269        memcpy(princ->realm, xdr, tmp);
 270        princ->realm[tmp] = 0;
 271        tmp = (tmp + 3) & ~3;
 272        toklen -= tmp;
 273        xdr += tmp >> 2;
 274
 275        _debug("%s/...@%s", princ->name_parts[0], princ->realm);
 276
 277        *_xdr = xdr;
 278        *_toklen = toklen;
 279        _leave(" = 0 [toklen=%u]", toklen);
 280        return 0;
 281}
 282
 283/*
 284 * extract a piece of krb5 tagged data
 285 */
 286static int rxrpc_krb5_decode_tagged_data(struct krb5_tagged_data *td,
 287                                         size_t max_data_size,
 288                                         const __be32 **_xdr,
 289                                         unsigned int *_toklen)
 290{
 291        const __be32 *xdr = *_xdr;
 292        unsigned int toklen = *_toklen, len;
 293
 294        /* there must be at least one tag and one length word */
 295        if (toklen <= 8)
 296                return -EINVAL;
 297
 298        _enter(",%zu,{%x,%x},%u",
 299               max_data_size, ntohl(xdr[0]), ntohl(xdr[1]), toklen);
 300
 301        td->tag = ntohl(*xdr++);
 302        len = ntohl(*xdr++);
 303        toklen -= 8;
 304        if (len > max_data_size)
 305                return -EINVAL;
 306        td->data_len = len;
 307
 308        if (len > 0) {
 309                td->data = kmemdup(xdr, len, GFP_KERNEL);
 310                if (!td->data)
 311                        return -ENOMEM;
 312                len = (len + 3) & ~3;
 313                toklen -= len;
 314                xdr += len >> 2;
 315        }
 316
 317        _debug("tag %x len %x", td->tag, td->data_len);
 318
 319        *_xdr = xdr;
 320        *_toklen = toklen;
 321        _leave(" = 0 [toklen=%u]", toklen);
 322        return 0;
 323}
 324
 325/*
 326 * extract an array of tagged data
 327 */
 328static int rxrpc_krb5_decode_tagged_array(struct krb5_tagged_data **_td,
 329                                          u8 *_n_elem,
 330                                          u8 max_n_elem,
 331                                          size_t max_elem_size,
 332                                          const __be32 **_xdr,
 333                                          unsigned int *_toklen)
 334{
 335        struct krb5_tagged_data *td;
 336        const __be32 *xdr = *_xdr;
 337        unsigned int toklen = *_toklen, n_elem, loop;
 338        int ret;
 339
 340        /* there must be at least one count */
 341        if (toklen < 4)
 342                return -EINVAL;
 343
 344        _enter(",,%u,%zu,{%x},%u",
 345               max_n_elem, max_elem_size, ntohl(xdr[0]), toklen);
 346
 347        n_elem = ntohl(*xdr++);
 348        toklen -= 4;
 349        if (n_elem < 0 || n_elem > max_n_elem)
 350                return -EINVAL;
 351        *_n_elem = n_elem;
 352        if (n_elem > 0) {
 353                if (toklen <= (n_elem + 1) * 4)
 354                        return -EINVAL;
 355
 356                _debug("n_elem %d", n_elem);
 357
 358                td = kcalloc(n_elem, sizeof(struct krb5_tagged_data),
 359                             GFP_KERNEL);
 360                if (!td)
 361                        return -ENOMEM;
 362                *_td = td;
 363
 364                for (loop = 0; loop < n_elem; loop++) {
 365                L365"> 365         href="+code=princ" class="sref">prin05"> 365                L365"> 365         href="+code=princ" class="sref">prin05"> 365                L365"> 365         href="+code=princ" class="sref">prin05"> 365                L365"> 365         href="+codes02          t312e=princ" class="sref">p="net/rxrpc/ar-key.c#L357" id="L357" clasohlp1esref">p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 335  if 3!GFP_KERNEL);
(krb5_ta0  =n_elem" class="sref">n_elem, loop>-> 359            ef="net/rxrpc/ar-key.c#L322" id=ref="+cod3=princ" class="sref">pri3c37ef="+code=rxk5" class="sref">rxk5-> 271     3   272<3a>   3     318
 273  3     374  _xdr = xdr;
 += t3p >> 2;
_toklen = toklen;
 321        name_parts[0],37ef">prin05">  0 [toklen=%u]", -&3t;5" class="sref">rxk5-> 377td 278     3  */* tet/rxrpc/ar-key.c#L324" id="L324" class=" class="3ref">_leave(tokle3)3
 326 * extract an a"L280" cl3ss="line" name="L280"> 2303      r-key.c#L327" id="L327" class="line" name="L3c#L203" id="L203" class="line" name="L3c#L20t/rxrpc/ar-key.c#L35+code=_td" class="sref">_>);
_xdr = kts="  L365"> 365         href="+coder-key.c#L381" id="L281" class="lin3" nam38t __b=max_elem_size" class="sref">max_elem_size,
 **_xdr,
 282
_toklen)
 214{
 215        cons3of krb5 t3gged data
 *xdr = *_xdr;
(struct "n_elem %d"         3                  tmp;
 293
 348n_elL353" class="line" name="L353"> 3lass="lin3" name="L289"> 289  3     39e=n_elem" class="sref">n_elem > max_n_elem)
n_name_pa3 __b39> =  222
pc/ar-key.c#L344" id="" class="line" name="L345"> 345               max_n_elem, max_elem_size, tok3en_tokl3n, EINVAL;
ntohl(*xdr++);
 302     id="L294"3class="line" name="L294"3 294<39 >> 2;
ntohl(*xdr++);
<"net/rxrp3/ar-key.c#L295" id="L2953 clas39s="sref">n_parts;
ntohl(* 262      TIXine"et/rxrpc/ar-key.c#L333" id="L333" cl/rxrpc/ar3key.c#L296" id="L296" cl3ss="l39code=princ" class="sref">princ->max_n_elem)
_xdr = kts="  L3t/rxrpc/ar-key.c#L306" id="L306" class="line" name="L306"> 306        <> 2983        34href="+co4e=ntohl" class="sref">nt4hl,  355
3c#L20 href="netey.c#L344" id="" class="line" n306" id="L306" class="lin="line" name="L302"> 302    4[1]),4n_name_pa4gt; 307
);
 309                td->data = kmemdup(td;
);
4304        if (llass="sref">princ->td)
EINVAL;
ENOMEM;
td<4a>-&g40code=princ" class="sr 2;
ntohl(* 306        4">data_le4 = n_elem);
toklen -= len;
rxk5->xdr, xd4s="line" 4ame="L310"> 310     4     41e" name="L350"> 350       rxrpc/ar-key.c#L318" id="L318" class="line" name="L318"> 318
 311);
_xdr = xdr;
 312             4   = _toklen = toklen;
 321         313     4     4     314          4     4a href5" class="sref">rxk5->len<4a> &g4;> 2;
 326et/rxrpc/ar-key.c#L324" id="L324" class4a href="+4ode=tag" class="sref">ta4,4 3xrpc/ar-key.c#L324" id="L324" class4aref="net4ref="+code=data_len" cla4s="sr41 /* t9" -r-ke ef="er guarantees we hef=id="L217" 43"> 2s 3xrpc/ar-key.c#L324" id="L324" class4="L319" c4ass="line" name="L319"> 419
 320     4  *                )
 214{
 365         href="+cod4" class="4ref">_leave( 361                            f="+code=xdr" class="sref">xdr = *tokle4)4
 307
 34242   3" id="L203" class="liey_L32">lass="line" name="L21L32">3" id="L203" clL32">lass,ref="net/rxrpc/ar-ppL32">3" id="L203" clppL32">/rxrpc/ar-key.c#L320" id="L320" cla4r-key.c#L423" id="L323" class="lin4" nam42f">_toklen)
 324
krb5_tagged_data * 318
 348        n_elem, loo4rray of t4gged data
td(struct  222
,2
,2
,2
pc/ar-key.c#L344" id="L344" class="line" name="L344"49    4                        4     4       345               max_n_elem, max_data_size, max_data_size, max_data_size, kcall4         4                        4     4  321        ;
 3xrpc/ar-key.c#L324" id="L324" class4ass="line4 name="L333"> 333   4     43xrpc/ar-key.c#L283" id="L283"> 311 is arreasonabl=idpproximation9"
; loopmaxmax"tag %x len &37;x",  321        n_parts;
GFP_KERNEL);
4 __b43code=princ" class="sref">pri=n_elem" class="sref">n_elem, loo4ef="+code4_toklen" class="sref">_t4klen<43a href="+code=td" class="sref">td;
3" id="L203" clL32">lasslass="sref">loop 357
 3"line" name="L21L32">3" id="L203" clL32">lassde=ntohl" class="s="sref">data = kmemdup(    4   int ret3" id="L203" clL32">lassd" class="sref">kmemdup(princ->td)
loop 357
 3"line" name="L21rxk5s="line" name="ask5"+code=ntohl" class="s="sref">data = kmemdup(EINVAL 307
 4      _enterss="sref">loopmaxh32">3" id="L203" clL32">lassdp" class="sref">kmemdup(nt4hl 295        if (td)
toklenrxk5->n4elem<44a href="+code=td" class="sref">td3" id="L203" clL32">lass">"tag %x lsecurity_index3" id="L203" clsecurity_index"+colass="sref">looptd)
n4elem < 0 || 3" id="L203" clL32">lass">"tag %x lk5s="line" name="k5"+colass="sref">loopn_name_pa4s="line" 4ame="L351"> 351     4  *;

 = loop++) {
p1esrvstrin999-19 rxk5s="line" name="ask5"+co">"tag %x lclirxrp="line" name="clirxrlass,a">p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 3453   4            if (EINVAL;
GFP_KERNEL);
4r-key.c#L454" id="L354" class="lin4" nam45ss="sref">_entersgotoss="sref">loop 305     r; loop++) {
p1esrvstrin999-19 rxk5s="line" name="ask5"+co">"tag %x lserf=rpc/ar-key.c#L31serf=rlass,a">p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 345_debug(<4pan c457ef">EINVAL;
GFP_KERNEL);
4rref="+co4n_elem);
loop 34c#L359" i4="L359" class="line" nam4="L3546="sref">ret;
&quoa>
 326<<<<<<<<<* ENCTYPE_xxx)9"
 = ; loop++) {
 365             rxk5s="line" name="ask5"+co">"tag %x lsessionpc/ar-key.c#L31sessionlass,alass="sref">max62   DATAine" name="L262"> 262   DATAine""net65"> 365         href="+cod462" class4"line" name="L362"> 362<4a>   46t __be32p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 34s="sref">4td = EINVAL;
GFP_KERNEL);
4="+code=l4op" class="sref">looploop    4    href="+code=princ" c4ass="46> 2;
p467ef">EINVAL;
/* there must be at l<* 8 + 2d="L353" class="line" name="L353"> 45loop"tag %x lauthtim=>loop (_data" class="sref">krb5_td =  *E*)8" class="line" name="L318"> 318
        5"> 34>->, toklen -= pri4c47ref="+code=_toklen" class="srxk5s="line" name="ask5"+co">"tag %x lstarttim=>loop (_data" class="sref">krb5_td =  *E*)8" class="line" name="L318"> 318
        5"> 34>-key.c#L4ame="L271"> 271     4   = toklen -=  272<4a>   47> = "tag %x lendtim=>loop (_data" class="sref">krb5_td =  *E*)8" class="line" name="L318"> 318
        5"> 34>="sref">4" name="L273"> 273  4     47ref">EINVAL;
toklen -= t4p >> 2;
"tag %x lrenew_till3" id="L203" claenew_tillp" class="sref">loop (_data" class="sref">krb5_td =  *E*)8" class="line" name="L318"> 318
        5"> 34>    4lass="sref">name_parts[0],47e" name="L305"> 305     f">toklen -= toklen);
"tag %x lis_sloopxdr++);
 302    4s 477 = "tag %x lflagss="line" name="flagsp" class="sref">loopxdr++);
 302    4s href="n4ame="L278"> 278     4  *ntohl(* 302    4" class="4ref">_leave(xd4"ef="+cod4klen" class="sref">tokle4)48ref="+code=_toklen" class="srr-key.c#L355" id="L355" class="line" name="L355"> 355
3cmes: aref="nllx sref="nllx eref="nllx rtref="nllxy.c#L344" id="L344" class="line" name="L344"4"L280" cl4ss="line" name="L280"> 24048"L361"> 361     oklen" class="srxk5s="line" name="ask5"+co">"tag %x lauthtim=>maxrxk5s="line" name="ask5"+co">"tag %x lstarttim=>maxrxk5s="line" name="ask5"+co">"tag %x lendtim=>"tag %x lrenew_till3" id="L203" claenew_tillp" c="line" name="L302"> 302    4"line" na4e="L282"> 282
EINVAL;
 355
is_s
"tag %x lis_s"tag %x lflagss="line" name="flagsp" c="line" name="L302"> 302    4""+code=l4/ar-key.c#L284" id="L2844 clas48"L354"> 354                    4of krb5 t4gged data
 *;

(struct toklen);
loop++) {
 */
"tag %x laddresses>             rxk5s="line" name="ask5"+co">"tag %x ln_addresses>krb5_tagged_data<);
 262      ADDRESSESine" = <"L344" class="line" name="L344"4lass="lin4" name="L289"> 289  4     49e=n_elem" class="srefs="sref">krb5_tagged_data<);
 262   DATAine""net65"> 365         href="+cod4ed int *<4 href="+code=_toklen" cl4ss="s49u8 p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 34 __b49> = GFP_KERNEL);
4ef="+code4toklen" class="sref">tok4enloop_tokl4n,  >> 2;
 26SSERTCMP65"> (ot;tag %x lend rxrpc/ar-key.c#L31end rxrd="L3-8" class="line" name="L318"> 318
 321        ;

 = loop++) {
"tag %x lec#L203" id="L203" cl3c#L20t/rx.c365             rxk5s="line" name="ask5"+co">"tag %x lec#L20#37;x",ec#L20#37;"net65"> 365         href="+cod4e href="n4       krb5_tagged_da">p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 35href="+co5e=ntohl" class="sref">nt5hlret;
GFP_KERNEL);
5[1]),5loop; loop++) {
"tag %x lec#L20agged_data *ec#L20at/rx.c365             rxk5s="line" name="ask5"+co">"tag %x lec#L202#37;x",ec#L202#37;"net65"> 365         href="+cod5   krb5_tagged_da">p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 35h4 , EINVAL;
GFP_KERNEL);
5e="L304">5304        if (lgotoss="sref">loop53ar-key.c#L295" id="L2955ss="l50> 2;
td<5a>-&g50ef">toklen);
 26SSERTCMP65"> (ot;tag %x lend rxrpc/ar-key.c#L31end rxrd="L3-8" class="line" name="L318"> 318
 321        data_le5 = td;

xdr, , loop++) {
 */
"tag %x lauthc/ar-key.c#L365" idauthc/ar"net65"> 365         href="+cod5s="line" 5ame="L310"> 310     5     51u8 p="n20 rer9ef"rxk5s="line" name="ask5"+co">"tag %x ln_authc/ar-key.c#L365" idn_authc/ar"net65"> 365         href="+cod5st; 361                                   >);
 262      AUTHDATAine""net65"> 365         href="+cod5s   312             5  __be32);
 262   BDATALNine""net65"> 365         href="+cod5s4  313     5     5    p="n20 rer9ef">p1esref">p="n20 rer9ef">p1esrvstrin999-19     m" class="sref">_n_elem<2(a href=        5"> 35ne" name=5L314"> 314          5     515ef">EINVAL;
GFP_KERNEL);
5rrxrpc/ar5e=len" class="sref">len<5a> &g51"line" name="L295"> 2gotoss="sref">loop"n_elem %d&quo5a href="+5ode=tag" class="sref">ta5,51> =  26SSERTCMP65"> (ot;tag %x lend rxrpc/ar-key.c#L31end rxrd="L3-8" class="line" name="L318"> 318
 321         35="L319" c5ass="line" name="L319"> 519ret;
ntohl(*GFP_KERNEL);
5s="line" 5ame="L320"> 320     5  *loop_leave(tokle5)52t 
 35252   3" id="L203" clppL32">/rxr=ENO58                ass="liey_L32">3" id="L203" class="liey_L32">lass="*)">p1esrvstrin999-19 "tag %x l.ayload3" id="L203" clpayloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"netpc/ar-key.c#L320" id="L320" cla5"e" name=523" id="L323" class="lin5" nam52e=len" class="sreff="net/rxrpc/ar-ppL32">3" id="L203" clppL32">/rxrpc/ar-key.c#L320" id="L320" cla5rrxrpc/ar5e="L324"> 324
3" id="L203" clppL32">/rxr=EN">p1eef="net/rxrpc/ar-ppL32">3" id="L203" clppL32">/rxr)" name="ask5"+co">&quclaauthc/ar-key.c#Lucl/rxr)c/ar-key.c#L320" id="L320" cla5r315" id=5xrpc/ar-key.c#L326" id="5326" 52code=princ" class="srcontinuepc/ar-key.c#L320" id="L320" cla5r href="+5gged data
3" id="L203" clppL32">/rxr=ENa>;
3" id="L203" clL32">lasspc/ar-key.c#L320" id="L320" cla5rref="net5rray(struct  3483" id="L203" clL32">lass">"tag %x lkad3" id="L203" clkadlass">"tag %x lexpira>"tag %x lexpira>    5                        5     5      "tag %x lexpira>;
3" id="L203" clL32">lass">"tag %x lkad3" id="L203" clkadlass">"tag %x lexpira>n_name_pa5         5                  _toklen = toklen        ,  333   5     53      return 0;
loop 305     r; ->max_n_elem)
__b53code=s="sref">loop_t5klen<53> =  rer9ef"rxk5s="line" name="ask5"+co        maxh32">3" id="L203" clL32">lassdp" class="sref">kmemdup(    5   int , _toklen = toklen<="netdrxrpc/ar-key.c#L317" id="L317"r; kmemdup(pri=n_elem" class="sref">n_elem, loo5="net/rxr5c/ar-key.c#L341" id="L345" cla54     5" class="sref">rxk5-> 5      /* t9" attempt L3 parsel3ke ="L39asl3ke XDRhrefmat/rxrpc/ar-key.c#L324" id="L324" class5 rxrpc/ar5e=ntohl" class="sref">nt5hl/* t9" -r-ke ef="er guarantees we hef=imorel3klas73"> 2s 3xrpc/ar-key.c#L324" id="L324" class5= 326 "
n5elem<54a hrer-key.c#L327" id="L327" class="linr-kntiate8" i>                )
n_elem,358"_rlass=line" name="L21c/ar37;x",  307
n5elem < 0 ||  214{
3" id="L203" clL32">lassf="+code=loop" class="sref">loo5/rxrpc/ar5key.c#L350" id="L350" cl5ss="l551alm, )
loo5/"net/rxr5ame="L351"> 351     5  *xref">td->3" id="L203" clnL32">lass,ra>;
ntohl(*loo5/rxrpc/ar5ar-key.c#L352" id="L352"5class55> = n_elem, loo553   5            if ( >> 2;
 222
,2
,2
,2
pc/ar-kzey.c#L344" id="L344" class="line" name="L344"5/rxrpc/ar5- ode=data" classnL3="L345"> 345               max_n_elem, max_data_size, max_data_size, max_data_size, kcall55_debug(<5pan c55code=princ" class="sline" name="L21c/ar37;x", loo55ref="+co5td 348,  262   LENGTHine"f="n)c/ar-key.c#L320" id="L320" cla5c#L359" i5="L359" class="line" nam5="L3556     looploo5a href="n5t/rxrpc/ar-key.c#L360" i5="L3656_name_parts" class="sref">n_name_pa5r-key.c#L561" id="L361" class="lin5" nam56> = 
 362<5a>   56t  348,    5td = looploo5a-key.c#L5op" class="sref">loop 354                    55    5    href="+code=princ" c5ass="562 *;

p56ass="line" name="L326"> 326         * user>;
ce)9"
 348xdr++);
GFP_KERNEL);
55 href="n5key.c#L268" id="L268" cl5ss="l56rb5_tagged_data" clasgotoss="sref">looploo5>->, xdr++);
5ref="+cod5=princ" class="sref">pri5c57_name_parts" class="sref">n_name_pa5>-key.c#L5ame="L271"> 271     5   =   9"
 272<5a>   57> = ntohl(*xdr++);
 302    5>="sref">5" name="L273"> 273  5     57ref">EINVAL;
len;
ntohl(* 262   CELLine"f="n)c/ar-key.c#L320" id="L320" cla5r"+code=l5ref="+code=tmp" class="s5ef">t57e=len" class="sref">lgotoss="sref">looploo5>    5lass="sref">name_parts[0],57e" name="L305"> 305     en &37;x", xdr++);
5rtoklen);
ENOMEM;
 577 348,  278     5  *looploo5" class="5ref">_leave(xd5"ef="+cod5klen" class="sref">tokle5)58ref="+code=_toklen" class="scd="L309" class="cplass=ENO>)
 318
loo5"-key.c#L5ss="line" name="L280"> 25058"L361"> 361loo5"2" class581" id="L281" class="lin5" nam58t n_elem,is..@&rze" class="sref">maxcd="L309" class="cplass[r-key.c#L262" ilood="L309" class="loodef="])=="+code=loop" class="sref">loo5"="sref">5e="L282"> 282
looploo5""+code=l5/ar-key.c#L284" id="L2845 clas585ef">EINVAL;
len;
 348loo5"    5gged data
 2ref="/ar-key.c#L262" ilood="L309" class="loodef="e classrvstrin999-19 tmd="L309" class="tmdef="ear-key.c#L262" ilood="L309" class="loodef="ss=="+code=loop" class="sref">loo5"(struct loo5"looploo5" href="n5                        5   co58ref="+code=_toklen" class="srr-key.c#L355" id="L355" class="line" name="L355"> 355
eell    : [/ar-ke/ef="net /ar9;ef="n*.*s/ar9;e.c#L344" id="L344" class="line" name="L344"5lass="lin5" name="L289"> 289  5     59e=n_elem" class="sre class="sref">xref">td->td->td-> 318
 302    5ed int *<5 href="+code=_toklen" cl5ss="s59ref="+code=_toklen" class="sen &37;x",  302    5e-key.c#L5+code=__be32" class="sre5">__b59> = toklen -=  348 302    5e2" class5toklen" class="sref">tok5en_tokl5n, EINVAL;
 count9"
EINVAL;
loo5"net/rxrp5/ar-key.c#L295" id="L2955 clas59"line" name="L295"> 2gotoss="sref">looploo5/rxrpc/ar5key.c#L296" id="L296" cl5ss="l59ef">toklen);
3" id="L203" clnL32">lasshref="+code=xdr" class="sref">xdr++);
 302    5e        5- = , xdr++);
5e href="n5        355
nL32">: ="net/rxrpc/ar-key.c#L317" id="L317"nL32">3" id="L203" clnL32">lass="line" name="L302"> 302    6href="+co6e=ntohl" class="sref">nt6hlret;
3" id="L203" clnL32">lasshtclas1 ||"+code=ntohl" clnL32">3" id="L203" clnL32">lasshtpc/ar-key.c#L262" id="L262" ne" name="L262"> 262   ne"f="n)c/ar-key.c#L320" id="L320" cla6[1]),6looploo6gt;;
 wrapper9"
, EINVAL;
3" id="L203" clL32">lasslass="sref">loop 318
loo6e="L304">6304        if (3" id="L203" clnL32">lassf="+code=loop" class="sref">loo6e6"L304">63ar-key.c#L295" id="L2956ss="l60"line" name="dos="line" name="L307"> 307
td<6a>-&g60code=princ" class="sr    a>;
looploo6g9href="+6o      ;
ntohl(*xdr++);
 302    6ref="+cod6=xdr" class="sref">xdr, xdr++);
 302    6r/a>[1]),6ame="L310"> 310     6     61, xdr++);
6st; 361      oklen" class="srr-key.c#L355" id="L355" class="line" name="L355"> 355
L32">: [/ar-kx/ef="nzx] ="net/rxrpc/ar-key.c#L317" id="L317"L32="sref">ntohl(*,  302    6r   312             6  /* there must be at 20 ||"+code=ntohl" cl class="comment">/* there must bepc/ar-key.c#L262" ic/ar37;x",  313     6     6    looploo6ne" name=6L314"> 314          6     61e=len" class="sref">l+code=ntohl" clen &37;x", /* there must bt/rxrpc/ar-key.c#L312" id="L312" class="line6rrxrpc/ar6e=len" class="sref">len<6a> &g61"line" name="L295"> 2+code=ntohl" clf">toklen -= /* there must bt/rxrppc/rpc/areline" name="L302"> 302    6L315" id=6L315" class="line" name=6L315"61ss="string">"n_elem %d&quo6a href="+6ode=tag" class="sref">ta6,61> =  302    6L9href="+6ref="+code=data_len" cla6s="sr61="L338" class="line" name="L338"> 36="L319" c6ass="line" name="L319"> 619,  355
remainder: ="netzey.c#L344" id="sline" name="L21c/ar37;x", loo6s="line" 6ame="L320"> 320     6  *, GFP_KERNEL);
6" class="6ref">_leave( 361      gotoss="sref">looploo6="+code=t6klen" class="sref">tokle6)62= * 36262ref">EINVAL;
/* t999999999" -rwe ignorel3ke eellss=", relying ons3ke /rx to be eorrectlyass="d/rxrpc/ar-key.c#L324" id="L324" class6"rxrpc/ar6e="L324"> 324
/* t999999999"
 307
toklen -= 3" id="L203" clL32">lasspc/ar-key.c#L320" id="L320" cla6rref="net6rray(struct ;
ntohl(*xdr++);
 302    69    6                        6     6      3" id="L203" clL32">lasslass="sref">loop 318
/* there must bt/rxrppc/rpc/ar="line" name="L302"> 302    69="line" 6                        6     63xdr++);
 302    69 class="6                   361      oklen" class="sL32="sref">ntohl(* 302    69"+code=t6                        6   co63= * 333   6     63    355
/a>   3ype=="netu [/ar-kp-/ar-kp]y.c#L344" id="sline" name="L213e"lix3" id="L203" clseclixlass"sline" name="L21>p1esref">p="n20 rer9efsrvstrin999-19 L32">3" id="L203" clL32">lass="line" name="L302"> 302    69e" name=6 href="+code=_toklen" cl6ss="s63"L354"> 354                    6erxrpc/ar6        struct  2switch  a>;
 307
__b63code=princ" class="srcasefsrvstrin999-19 RXRPC_SECURITY_RXKAD3" id="L203" clRXRPC_SECURITY_RXKADode=: return 0;
_t6klen<63loop++) inr-kntiate8" ilrxkad3" id="L203" cla>++) inr-kntiate8" ilrxkadass="l="sref">loopp="n20 rer9efsrvstrin999-19 L32lass="line" name="L321"> 321        ;
GFP_KERNEL);
68    6   int looploop++) inr-kntiate8" ilrxk5s="line" name="a>++) inr-kntiate8" ilrxk5ass="l="sref">loopp="n20 rer9efsrvstrin999-19 L32lass="line" name="L321"> 321        ls="sref"    a>;
GFP_KERNEL);
68rxrpc/ar6e=ntohl" class="sref">nt6hl 2ssssssssssssssssgotoss="sref">loopn6elem<64a href="+code=td" class="sref">tdn6elem < 0 || ->loop 351     6  * 361      5" class="sref">rxk5->->3" id="L203" clnL32">lasshtpc/as eline" name="L302"> 302    6r-key.c#L654" id="L354" class="lin6" nam65"L354"> 354                    6/rxrpc/ar6- 305     tef">_toklen = toklen        _debug(<6pan c65code=princ" c 0 [toklen=%u]", tdloop_toklen = toklen<-ePROTOrxrpc/ar-key.        princ-> = loop 362<6a>   66> = _toklen = toklen<="netdrxrpc/ar-key.c#L317" id="L317"r; kmemdup(   6td = pri=n_elem" class="sref">n_elem, loo6a-key.c#L6op" class="sref">looprxk5->    6    href="+code=princ" c6ass="66> 2;
p66ass="line" name="L326"> 326et/rxrpc/ar-key.c#L324" id="L324" class65/* t9" inr-kntiate an  id="sdefiode=/* t9" ="L39should7" iofr-ke form:laxrpc/ar-key.c#L324" id="L324" class6>->/* t9"      OFFSET  LEN     CONTENTlaxrpc/ar-key.c#L324" id="L324" class6> href="n6=princ" class="sref">pri6c67_namen class="comment">/* t9"      0href="+4href="+/rx iid="face version numb="L2xrpc/ar-key.c#L324" id="L324" class6>-key.c#L6ame="L271"> 271     6   = /* t9"      4href="+2href="+securitx iidex (3ype)L2xrpc/ar-key.c#L324" id="L324" class6>rxrpc/ar6"line" name="L272"> 272<6a>   67> = /* t9"      6href="+2href="+ec#L20 1">gthL2xrpc/ar-key.c#L324" id="L324" class6>3   6" name="L273"> 273  6     67xrpc/ar-key.c#L283" id="L289"      8href="+4href="+/rx expira+ecme (ecme_t)L2xrpc/ar-key.c#L324" id="L324" class6>-key.c#L6ref="+code=tmp" class="s6ef">t67ss="sn class="comment">/* t9"      12ref="+4href="+/vnoL2xrpc/ar-key.c#L324" id="L324" class6>    6lass="sref">name_parts[0],67"linen class="comment">/* t9"      16      8href="+session  326 "ref="+24href="[1">]="+ec#L20laxrpc/ar-key.c#L324" id="L324" class6r 677/* t9"laxrpc/ar-key.c#L324" id="L324" class6r href="n6ame="L278"> 278     6  */* t9" if no ="L39is provided,r-ken a no-securitx /rx is madelaxrpc/ar-key.c#L324" id="L324" class6" class="6ref">_leave(/* t9"
tokle6)68ref="r-key.c#L327" id="L327" class="linr-kntiates="line" name="a>++) inr-kntiate"+cod58                )
n_elem,358"_rlass=line" name="L21c/ar37;x",  26068"L361="line" name="L307"> 307
loo6"="sref">6e="L282"> 282
                ass="liey_L32">3" id="L203" class="liey_L32">lass="srvstrin999-19 L32">3" id="L203" clL32">lass, *"srvstrin999-19 pd="L309" class="pdef="eline" name="L302"> 302    6""+code=l6/ar-key.c#L284" id="L2846 clas68 >> 2;
n_elem,358"_rlass=line" name="L21p37;x",pl">lasspc/ar-key.c#L320" id="L320" cla6"    6gged data
 305     ukey.c#L214" id="Lu3"L361"line" name="L21(struct n_elem, loo6"td {2
pcc/ar-kzey.c#L344" id="                looploo6lass="lin6" name="L289"> 289  6     69xd6ed int *<6 href="+code=_toklen" cl6ss="s69ref="+code=_to>;

__b69> = GFP_KERNEL);
6e2" class6toklen" class="sref">tok6en_tokl6n, EINVAL;

    6/ar-key.c#L295" id="L2956 clas69"line" name=" name="L348"> 348,  307
loop++) inr-kntiate8" is="line" name="a>++) inr-kntiate8" iass="l="sref">loop, loo6l;
->GFP_KERNEL);
6e href="n6       pri=n_elem" class="sref">n_elem, loo7href="+co7e=ntohl" class="sref">nt7hlretrxk5->[1]),7n_name_pa7gt;;

->max_n_elem)
EINVAL;
GFP_KERNEL);
7e="L304">7304        if (lgotoss="sref">loop73ar-key.c#L295" id="L2957ss="l70e" name="L305"> 305     memcpa>p1esrvstrin999-19 looploo7a href="+7ode=td" class="sref">td<7a>-&g70ef">toklen);
looploo7a8href="+7o = , looploo7a9href="+7o       37ref="+cod7=xdr" class="sref">xdr, ,  355
KEY I/F VERSION: ="netey.c#L344" id="                loo7r/a>[1]),7ame="L310"> 310     7     71_name_parts" class="sref">n_name_pa7st; 361-> 312             7   348GFP_KERNEL);
7s4  313     7     7    loop 314          7     71"L354"> 354                    7rrxrpc/ar7e=len" class="sref">len<7a> &g712 *;

toklen);
->max_n_elem)
ta7,71 348, loo7L9href="+7ref="+code=data_len" cla7s="sr71rb5_tagged_data" clasgotoss="sref">loop 719xd7s="line" 7ame="L320"> 320     7  *_leave( 348, "tag %x lec#L20_1">gth3" id="L203" clLc#L20_1">gth"net class="sref">GFP_KERNEL);
7="+code=t7klen" class="sref">tokle7)72t loop 37272      return 0;
 >> 2;
 355
SCIX: ="netey.c#L344" id="                v1s="line" name="v1lass">"tag %x lsecuritx_iidexef">n_elem,3ecuritx_iidexlass)f="+code=loop" class="sref">loo7"rxrpc/ar7e="L324"> 324
 305     tr-key.c#L355" id="L355" class="line" name="L355"> 355
/LEN: ="netey.c#L344" id="                v1s="line" name="v1lass">"tag %x lec#L20_1">gth3" id="L203" clLc#L20_1">gth"net f="+code=loop" class="sref">loo7"315" id=7xrpc/ar-key.c#L326" id="7326" 72ef">toklen);
 355
EXPY: ="net/rxrpc/ar-key.c#L317" id="L317"v1s="line" name="v1lass">"tag %x lexpira>loo7" href="+7gged data
 =  355
KVNO: ="netey.c#L344" id="                v1s="line" name="v1lass">"tag %x l/vnoc/ar-key.c#L222loo7"9href="+7rray(struct  355
SKEY: ="net02x="net02x="net02x="net02x="net02x="net02x="net02x="net02x=.c#L344" id="L344" class="line" name="L344"79    7                        7     7      "tag %x lsession_"tag %x lsession_"tag %x lsession_"tag %x lsession_ 361                    v1s="line" name="v1lass">"tag %x lsession_"tag %x lsession_"tag %x lsession_"tag %x lsession_loo7ass="line7 name="L333"> 333   7     73ref">EINVAL;
"tag %x lec#L20_1">gth3" id="L203" clLc#L20_1">gth"neterpc/=s8)c/ar-key.c#L320" id="L320" cla79e" name=7 href="+code=_toklen" cl7ss="s73e=len" class="sref">l+code=ntohl" cltr-key.c#L355" id="L355" class="line" name="L355"> 355
/CKT: ="net02x="net02x="net02x="net02x="net02x="net02x="net02x="net02x=.c#L344" id="L344" class="line" name="L344"79rxrpc/ar7        struct  2ode=__b               v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass[0]"                v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass[1]"L344" class="line" name="L344"79315" id=7+code=__be32" class="sre7">__b73code=princ" class="srode=__b               v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass[2]"                v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass[3]"L344" class="line" name="L344"79 href="+7_toklen" class="sref">_t7klen<73"tag %x lLc#L203" id="L203" clLc#L20lass[4]"                v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass[5]"L344" class="line" name="L344"799href="+7ref="net/rxrpc/ar-key.c#7338" 73rb5_tagged_data" class="sref               v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass[6]"                v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass[7] f="+code=loop" class="sref">loo78    7   int xd78        7c#L340" id="L340" class=7line"74ref="+code=_toklen" class="sr; -> =  348"tag %x lsecuritx_iidexef">n_elem,3ecuritx_iidexlasse!=sot;tag %x lRXRPC_SECURITY_RXKAD3" id="L203" clRXRPC_SECURITY_RXKADode=)c/ar-key.c#L320" id="L320" cla7/rxrpc/ar7key.c#L342" id="L342" cl7ss="l74t loop >> 2;
lass =s358"of""line" name="L21L32">3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=) +toklen" class="sv1s="line" name="v1lass">"tag %x lec#L20_1">gth3" id="L203" clLc#L20_1">gth"netpc/ar-key.c#L320" id="L320" cla78rxrpc/ar7e=ntohl" class="sref">nt7hl 305     r; loop_toklen = _ass="l="sref">loop = lass +s358"of""line" name="L21L32">3" id="L203" clL32">lass))f="+code=loop" class="sref">loo78;
GFP_KERNEL);
78 href="+7e=n_elem" class="sref">n7elem<74loop 37="sref">n7elem < 0 || ->3" id="L203" clL32">lasslass="sref">loop = 3" id="L203" clL32">lass),aline" name="L21GFP_KERNEcode=max_n_elem"GFP_KERNEcL2 c f="+code=loop" class="sref">loo7/"net/rxr7ame="L351"> 351     7  * = 3" id="L203" clL32">lass)="+code=loop" class="sref">loo7/rxrpc/ar7ar-key.c#L352" id="L352"7class75t loop   7            if (3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=lass="sref">loop = lass,aline" name="L21GFP_KERNEcode=max_n_elem"GFP_KERNEcL2 c f="+code=loop" class="sref">loo7/344 754" id="L354" class="lin7" nam755ef">EINVAL3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=)="+code=loop" class="sref">loo7/rxrpc/ar7- 2gotoss="sref">loop = _debug(<7pan c75ss="string">"n_elem %d&quo75ref="+co73" id="L203" clL32">lass">"tag %x lsecuritx_iidexef">n_elem,3ecuritx_iidexlasseeeeeeeeeee=sot;tag %x lRXRPC_SECURITY_RXKAD3" id="L203" clRXRPC_SECURITY_RXKADode=pc/ar-key.c#L320" id="L320" cla759href="+7ref="+code=n_elem" class7"sref75ref="+code=_toklen" class="sL32">3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=">"tag %x lec#L20_1">3" id="L203" clLc#L20_1">lasseeeeeeeeee=sot;tag %x lv1s="line" name="v1lass">"tag %x lec#L20_1">gth3" id="L203" clLc#L20_1">gth"netpc/ar-key.c#L320" id="L320" cla7c#L359" i7="L359" class="line" nam7="L3576ealm, 3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=">"tag %x lexpira> 2=sot;tag %x lv1s="line" name="v1lass">"tag %x lexpira>3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=">"tag %x l/vnoc/ar-key.c#L222 2=sot;tag %x lv1s="line" name="v1lass">"tag %x l/vnoc/ar-key.c#L222 361p1esrvstrin999-19 L32">3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=">"tag %x lsession_p1esrvstrin999-19 v1s="line" name="v1lass">"tag %x lsession_loo7crxrpc/ar7"line" name="L362"> 362<7a>   76> = p1esrvstrin999-19 L32">3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=">"tag %x lLc#L203" id="L203" clLc#L20lass"                v1s="line" name="v1lass">"tag %x lLc#L203" id="L203" clLc#L20lass"                v1s="line" name="v1lass">"tag %x lec#L20_1">gth3" id="L203" clLc#L20_1">gth"net f="+code=loop" class="sref">loo7c3   7td = loopEINVAL;

    7    href="+code=princ" c7ass="76e" name="L305"> 305      = "tag %x leype_c/ar-key.c#L365" ideype_c/arlass.ot;tag %x lxef">n_elem,xlass[0]++f="+code=loop" class="sref">loo7cp76ss="string">"n_elem %d&quo75 =                 ass="liey_L32">3" id="L203" class="liey_L32">lass="*)">p1esrvstrin999-19  = "tag %x l.ayload="L309" class="payloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"netpc/ar-key.c#L320" id="L320" cla75 href="n7key.c#L268" id="L268" cl7ss="l76ref="+code=_twhile ("srvstrin999-19 pd="L309" class="pdef=")="+code=loop" class="sref">loo7>->p1e("srvstrin999-19 pd="L309" class="pdef=")">"tag %x lnex03" id="L203" clnex0"netpc/ar-key.c#L320" id="L320" cla7> href="n7=princ" class="sref">pri7c77ref="+code=_t"srvstrin999-19 pd="L309" class="pdef=""ENa>;
3" id="L203" clL32">lasspc/ar-key.c#L320" id="L320" cla7>-key.c#L7ame="L271"> 271     7   =  3483" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=">"tag %x lexpira> = "tag %x lexpira>rxrpc/ar7"line" name="L272"> 272<7a>   77t "tag %x lexpira>;
3" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=">"tag %x lexpira>3   7" name="L273"> 273  7     77ref">EINVAL;
3" id="L203" clL32">lasslass="sref">loop-key.c#L7ref="+code=tmp" class="s7ef">t77 >> 2;
,     7lass="sref">name_parts[0],77> 2;
loop =  777 =  =  3483" id="L203" clL32">lass f="+code=loop" class="sref">loo7r href="n7ame="L278"> 278     7  *loop_leave(pri=n_elem" class="sref">n_elem, loo7"ef="+cod7klen" class="sref">tokle7)78ref="5" class="sref">rxk5-> 27078      return 0;
 = /* tet/rxrpc/ar-key.c#L324" id="L324" class7"="sref">7e="L282"> 282
_r+sec /* t9" ="L39should7" ia poiid=" to 3he 8-byte sec     7gged data
/* t9"
(struct                 )
n_elem,358"_rlass=line" name="L21c/ar37;x",  307
 289  7     79                     crypto_blkciphrpc/ar-key.c#L222crypto_blkciphrplass="line" name="L21cic/ar-key.c#L222ci href="+code=loop" class="sref">loo7ed int *<7 href="+code=_toklen" cl7ss="s79_name_parts" class="sref">n_name_pa7e-key.c#L7+code=__be32" class="sre7">__b79"L361"> 361 {2
pcc/ar-kzey.c#L344" id="                loopn_name_pa7e2" class7toklen" class="sref">tok7en_tokl7n, EINVAL;
lef">princ->max_n_elem)
toklen);
p1esrvstrin999-19  = "tag %x leype_c/ar-key.c#L365" ideype_c/arlass,aline" name="L21c/ar-key.c#L365" idc/ar"netc#8 f="+code=loop" class="sref">loo7ltdloop pcbc(des)y.c#L344" id=" 0,aline" name="L21CRYPTO_ALG_ASYNCc/ar-key.c#L222CRYPTO_ALG_ASYNCf="n)f="+code=loop" class">n_name_pa8href="+co8e=ntohl" class="sref">nt8hlret;
loop 307
[1]),8_toklen = toklen<="netldrxrpc/ar-key.c#L317" id="L317"PTR_ERRc/ar-key.c#L222PTR_ERRass="l="sref">loopn_name_pa8h2a>[1]),8 361     =ef">pri=n_elem" class=PTR_ERRc/ar-key.c#L222PTR_ERRass="l="sref">loopn_name_pa8h3a>[1]),8tok8>len<80> = rxk5->, 8304        if (EINVAL = loopGFP_KERNEL);
8e6"L304">83ar-key.c#L295" id="L2958ss="l80"line" name="L295"> 2line" name="L21BUG-key.c#L365" idBUGass=")f="+code=loop" class">n_name_pa8h7"L304">83ey.c#L296" id="L296" cl8a>-&g80ss="string">"n_elem %d&quo8a8href="+8o =  = "tag %x l.ayload="L309" class="payloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"netlass="sref">looploo8a9href="+8o      _toklen = toklen        xdr, prilen=%u]", [1]),8ame="L310"> 310     8     81ref="5" class="sref">rxk5-> 312             8   = /* tet/rxrpc/ar-key.c#L324" id="L324" class8s4  313     8     81xrpc/ar-key.c#L283" id="L289" dispos iofr-ke ="L39dangling fromr-ke corps iofra  id="s 314          8     81ss="sn class="comment">/* t9"
len<8a> &g812r-key.cvoid=7" id="L327" class="ldestroatoklen =                 GFP_KERNEL);
8L315" id=8L315" class="line" name=8L315"81ef">t="line" name="L307"> 307
ta8,813" id="L203" class="liey_L32">lass="srvstrin999-19 L32">3" id="L203" clL32">lassen=%u]",  38="L319" c8ass="line" name="L319"> 819 3483" id="L203" clL32">lasslass="sref">loop = "tag %x l.ayload="L309" class="payloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"net)=s="line" name="L307"> 307
 320     8  * = "tag %x l.ayload="L309" class="payloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"netlass="sref">loop3" id="L203" clL32">lass">"tag %x lnex03" id="L203" clnex0"netpc/ar-key.c#L320" id="L320" cla8=t;_leave( 361     =switch  e="L348"> 3483" id="L203" clL32">lass">"tag %x lsecuritx_iidexef">n_elem,3ecuritx_iidexlass)s="line" name="L307"> 307
tokle8)82t  38282    3483" id="L203" clL32">lass">"tag %x l/ad3" id="L203" clkadass=)pc/ar-key.c#L320" id="L320" cla8=e" name=823" id="L323" class="lin8" nam82e=len" class="sref">ls="sref"breakpc/ar-key.c#L320" id="L320" cla8"rxrpc/ar8e="L324"> 324
 2casefsrvstrin999-19 RXRPC_SECURITY_RXK53" id="L203" clRXRPC_SECURITY_RXK5ode=: return 0;
 3483" id="L203" clL32">lass">"tag %x l/53" id="L203" clk5lass class="sref">GFP_KERNEL);
8" href="+8gged data
 =  3483" id="L203" clL32">lass">"tag %x l/53" id="L203" clk5lass pc/ar-key.c#L320" id="L320" cla8"9href="+8rray(struct ls="sref"breakpc/ar-key.c#L320" id="L320" cla89    8                        8     8       348toklUnknown L32"> eype ="net/ on  id="s 361     e=u8" c" href="                L32">3" id="L203" clL32">lass">"tag %x lsecuritx_iidexef">n_elem,3ecuritx_iidexlass)pc/ar-key.c#L320" id="L320" cla89  n_name_pa8ass="line8 name="L333"> 333   8     83   rxk5-> 354                    89rxrpc/ar8        struct  2srvstrin999-19 kfre_toklen =  3483" id="L203" clL32">lass)f="+code=loop" class">n_name_pa8a315" id=8+code=__be32" class="sre8">__b83code=princ" c5" class="sref">rxk5->_t8klen<83rxk5-> 388    8   int /* tet/rxrpc/ar-key.c#L324" id="L324" class88        8c#L340" id="L340" class=8line"84_namen class="comment">/* t9" dispos iofr-ke ="L39dangling fromr-ke corps iofra  id="s = /* t9"
                                GFP_KERNEL);
88ss="line8- 307
 8      EINVAL = "tag %x l.ayload="L309" class="payloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"net)s="line" name="L307"> 307
nt8hl 2srvstrin999-19 crypto_fre__blkciphrpc/ar-key.c#L222crypto_fre__blkciphrpass="l="sref">loop"tag %x l.ayload="L309" class="payloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"net)="+code=loop" class">n_name_pa8a882   "tag %x l.ayload="L309" class="payloadlass.ot;tag %x lc/ar-key.c#L365" idc/ar"netlass="sref">loopn78lem<78rxk5->rxk5->n78lem < 0 || xd78rxrpc/ar78ey.c#L350" id="L350" cl78s="l785namen class="comment">/* t9t/rxrpc/ar-key.c#L324" id="L324" class88"net/rxr78me="L351"> 351     78 */* t9"/* te"
   78           if (                aea>8                aseq_files="linr-kntiateseq_fileass="line" name="L21GFP_KERNEL);
88344 784" id="L354" class="lin78 nam785ef">E"line" name="L307"> 307
 305     loop = "tag %x l.>, <n_name_pa8a8_debug(<78an c78ss="st" class="sref">rxk5->td/* t9t/rxrpc/ar-key.c#L324" id="L324" class88#L359" i78"L359" class="line" nam78"L35786alm/* te"/* t9" /a>
                n_elem,3rxass   charoklen" class="sre_uspc/ar-key.c#L222" _uspcass="line" name="L21, opt7;xass class="sref">GFP_KERNEL);
88rxrpc/ar78line" name="L362"> 362<78>   78> =  307
   78d = n_name_pa8a8-key.c#L78p" class="sref">loopEINVALn_name_pa8a8-xrpc/ar78   href="+code=princ" c78ss="786gt; 2;
p786f">toklen);
 {xrpc/ar-key.        td, opt7;xass rcla= 40||"               , opt7;xass rcgassrvstrin999-19 , PAGE_SIZEass r-1 class="sref">GFP_KERNEL);
78->princ->max_n_elem)
pri78787name_parts" class="sref">n_name_pa78-key.c#L78me="L271"> 271     78  361, <loop = loo78rxrpc/ar78line" name="L272"> 272<78>   787 loo78r   78 name="L273"> 273  78    787  princ->t787L354"> 354                    89    78ass="sref">name_parts 348, opt7;xass cs="line" name="L307"> 307
82    348, <n_name_pa8a8 787princ-> 278     78 *rxk5->_leave(, <, opt7;xass ]aslen=%u]", tokle78/a>)788name_parts" class="sref">n_name_pa78-key.c#L78s="line" name="L280"> 278788L361"> 361loopp1esrvstrin999-19 , <n_name_pa8a82" class781" id="L281" class="lin78 nam788  348loop 307
78="L282"> 282
 =  348, <n_name_pa8a8"+code=l78ar-key.c#L284" id="L28478clas788=len" class="sref">l+code=ntohl" cltrf">_toklen = toklen<="netldrxrpc/ar-key.c#L317" id="L317"PTR_ERRc/ar-key.c#L222PTR_ERRass="l="sref">loopn_name_pa8a8"/a>    78ged data
 2sf">pri=n_elem" class=PTR_ERRc/ar-key.c#L222PTR_ERRass="l="sref">loopn_name_pa8a8"a href=78d_data(struct rxk5->tdn_elem,3rxass >"tag %x l/5a>loopn_name_pa8a8ass="lin78 name="L289"> 289  78    789alm,  348, <n_name_pa8a8d int *<78href="+code=_toklen" cl78s="s789ef="+code=_toklen" class="sLef">_toklen = toklen"tag %x l.erial3" id="L203" cln_name_pa8a8dkey.c#L78code=__be32" class="sre78>__b78"L361"> 361prilen=%u]", tok78nrxk5->_tokl78, /* t9t/rxrpc/ar-key.c#L324" id="L324" class88    78ar-key.c#L295" id="L29578clas789linen class="comment">/* t9"_r+seoL20lasrpc/ar-key.c#L324" id="L324" class88rxrpc/ar78ey.c#L296" id="L296" cl78s="l78ef">to class="comment">/* t9" /a>
                n_elem,3rxass   charoklen" class="sre_uspc/ar-key.c#L222" _uspcass="line" name="L21ls="sref"b L327" id="L327" claopt7;x", opt7;xass class="sref">GFP_KERNEL);
89ref="+co89=ntohl" class="sref">nt89l 307
[1]),89a href="+code=toklen" c89ss="89n_name_pa8a92a>[1]),89code=__be32" class="sre89tag<89"L361"> 361n_name_pa8a93a>[1]),89oklen" class="sref">tok89len<890 *EINVAL;
 {xrpc/ar-key.        8904        if ( 354                    896"L304">89ar-key.c#L295" id="L29589s="l890line" name=" name="L348"> 348, opt7;xass rcla= 40||"               , opt7;xass rcgassrvstrin999-19 , PAGE_SIZEass r-1 class="sref">GFP_KERNEL);
797"L304">89ey.c#L296" id="L296" cl89>-&g890         a>82   princ->max_n_elem)
td, <loop = loo79ef="+cod89xdr" class="sref">xdrret, <loo79/a>[1]),89me="L310"> 310     89    891a href="+code=u8" c" f">princ-> 312             89  348, <, opt7;xass cs="line" name="L307"> 307
 313     89    891   =  348, <n_name_pa8a9e" name=89314"> 314          89    891=len" class="sref">lef">princ->len<89> &g891line" name=" " class="sref">rxk5->toklen);
, opt7;xass ]aslen=%u]", ta89/a>,891 href="+code=td" class="sref">tdloopp1esrvstrin999-19 , <n_name_pa8a9"L319" c89ss="line" name="L319"> 899ret;
loop 307
 320     89 * =  348, <n_name_pa8a9t;_leave( 361     =scode=ntohl" cltrf">_toklen = toklen<="netldrxrpc/ar-key.c#L317" id="L317"PTR_ERRc/ar-key.c#L222PTR_ERRass="l="sref">loopn_name_pa8a9  tokle89/a>)89t pri=n_elem" class=PTR_ERRc/ar-key.c#L222PTR_ERRass="l="sref">loopn_name_pa8a94  38989   rxk5-> 354                    89rxrpc/ar89="L324"> 324
 305     r;ef">n_elem,3rxass >"tag %x l/ecuritxiess="linr-kntiateseuritxiesass="ss="sref">loopn_name_pa8a9315" id=89rpc/ar-key.c#L326" id="8926" 892f">toklen);
 348, <n_name_pa8a9thref="+89ged data
_toklen = toklen"tag %x l.erial3" id="L203" cln_name_pa8a99href="+89ray(struct prilen=%u]",     89                       89    89     <" class="sref">rxk5->n_name_pa79t;/* t9t/rxrpc/ar-key.c#L324" id="L324" class89  /* te"< generte a ser>_r+s"L39dkalaxrpc/ar-key.c#L324" id="L324" class89ss="line89name="L333"> 333   89    893rpc/ar-key.c#L283" id="L289" /a>
_r+_"L39ss="38                , ss="liconnectioxass="line" name="L21        struct  2sssssssssssssss)
n_elem,3tim_rede=prcode=ntohl" cl_t89len<893a href="+code=princ""""""""" href="code=ntohl" cl              loo799href="+89ef="net/rxrpc/ar-key.c#8938" 893ef="="line" name="L307"> 307
    89  int ret                acre="L309" class="pcre=ass="line" name="L21loopn_name_pa8a9        89#L340" id="L340" class=89ine"894a href="+code8                aea>n_name_pa8a9 class="89/ar-key.c#L341" id="L3489 cla894 = n_elem, loo79rxrpc/ar89ey.c#L342" id="L342" cl89s="l794 * 307
l+code=ntohl" cltu           ss="ceu"L361">              loo79rxrpc/ar89=ntohl" class="sref">nt89l 2s8                ass="liey_L"L39<1s="line" name="vss="liey_L"L39<1s361">              <1s="line" name="v1lass"="+code=loop" class="sref">loo79r15" id=89a href="+code=toklen" li9e" 7 9          a>82}line" name="L21c/ar-key.c#L365" idc/ar"netc="+code=loop" class="sref">loo79rhref="+89=n_elem" class="sref">n79lem<794 href="+code=td" class="sref">td {xrpc/ar-key.        n79lem < 0 || xd79rxrpc/ar79ey.c#L350" id="L350" cl79s="l795ef="+code=_toklen" class="sL5a>loop_lloctoklen = _lloctss="3>p1esrvstrin999-19  {x.c#L344" id=" 0,al,aline" name="L21Ccre="L309" class="pcre=ass=al,af="+code=xdr" class="sref">xd79rclass="89me="L351"> 351     79 * 361     e=u8" c" hine" name="L21CKEY_ALLOC_NOT_IN_QUOTA"L309" class="pKEY_ALLOC_NOT_IN_QUOTAss="="+code=loop" class">n_name_pa8a9rxrpc/ar79r-key.c#L352" id="L352"79lass795  348loop 307
   79           if (_toklen = toklenloopn_name_pa8a9344 794" id="L354" class="lin79 nam795=len" class="sref">lef">princ->rxk5->_debug(<79an c795s="string">"n_elem %d&quo89"href="+79a href="+code=n_elem" c79ss="795 = toklerx ""net/rxrpc/ar-key.c#L317" id="L317"Pka_serial3" id="L203" clloopn_name_pa8a93href="+79ef="+code=n_elem" class79sref795"L338" class="line" name="L338"> 389#L359" i79"L359" class="line" nam79"L35796alm, n_name_pa8a9#xrpc/ar79/rxrpc/ar-key.c#L360" i79"L36796ef="+code=_toklen" class="sL>ar-key.c#L365" idc/ar"netcot;tag %x lc1s="line" name="v1lass"ot;tag %x lcecuritx_iidexef">n_elem,3ecuritx_iidexlass)"ss="sref">loopn_name_pa8a9#class="891" id="L361" class="lin79 nam796L361"> 361n_elem,3tiL20lhrengthass)"ssen=%u]",  362<79>   7963361"> 361;
   79d = EINVAL;
,  79p" class="sref">loop 354                    89-xrpc/ar79   href="+code=princ" c79ss="796" name="L305"> 305     remcpa>p1esrvstrin999-19 <>ar-key.c#L365" idc/ar"netcot;tag %x lc1s="line" name="v1lass"ot;tag %x lcecsion_ 305     ;
n_name_pa8a9p796s="string">"n_elem %d&quo89loop;
n_name_pa8a9 href="n79ey.c#L268" id="L268" cl79s="l79ref="+code=_tw                  <; GFP_KERNEL);
89->n_name_pa8a9 href="n79princ" class="sref">pri79797name_parts" class="sref">n_name_pa79-key.c#L79me="L271"> 271     79  361"tag %x l/5a>loopn_name_pa8a9rxrpc/ar79line" name="L272"> 272<79>   7973361"> 361_toklen = toklenloopn_name_pa8a9r   79 name="L273"> 273  79    797  prilen=%u]", t797L354"> 354                    89    79ass="sref">name_parts;
toklen);
loop 797 = loop 278     79 *_toklen = toklen, _leave(prilc->tokle79/a>)798ef="5" class="sref">rxk5-> 279798L361"->loop_r+_"L39_r+_"L39ss="en=%u]", 79="L282"> 282
/* t9"< ss="ligetinull - Generte a snull RxRPCdkalaxrpc/ar-key.c#L324" id="L324" class89"/a>    79ged data
/* t9"(struct to class="comment">/* t9" axrpc/ar-key.c#L324" id="L324" class89"/f="net79                 /* t9"/* t9"< sequired rora sparticular domainaaxrpc/ar-key.c#L324" id="L324" class89ass="lin79 name="L289"> 289  79    799alm/* te"
                aea>ss="l)
 307
tok79n 361                acre="L309" class="pcre=ass="line" name="L21loopn_name_pa8a9f">_tokl79,                 aea>n_name_pa8a9d="L294"79lass="line" name="L294"79294<799ef">EINVALn_elem, loo79    79ar-key.c#L295" id="L29579clas799gt; 2;
toklen);
loop_lloctoklen = _lloctss="3>p1esrvstrin999-19 n_name_pa8a9loopn_name_pa8a10ref="+co810ref=  lef">prinine" name="L21code=loop" class">n_name_pa8a10r1f="+co810rref="+code=_toklen" cl710rre>10rname_parts" class="sref">n_name_pa710r2f="+co810rode=__be32" class="sre710rod>10rL361"> 361loopn_name_pa8a10r3f="+co810rklen" class="sref">tok710rkl>10r  348 307
, loop10r=len" class="sref">l+code=ntohl" clteat_putoklen = loop 2sf">pri=n_elem" class=PRRa_PTc/ar-key.c#L222IRRa_PTcss="l="sref">loop, 10rode=princ" c5" class="sref">rxk5->10r href="+code=td" class="sref">td10ref="+code=_t"f">priline" name="L21n_name_pa8a101ef="+co810xdr" class="sref">xdr10xdf="5" class="sref">rxk5-> 310     810me=>10x1361"->loopss="en=%u]", 10x     return 0;
 312             810"> >10x = /* tet/rxrpc/ar-key.c#L324" id="L324" class810x4f="+co810me="L313"> 313     810me=>10xrpc/ar-key.c#L283" id="L289" "f"ad-ke cornt"L2sofra ncid="s 314          810314>10xs="sn class="comment">/* t9"< --keis"f">pris-ke ciesult  3 XDR rormaxrpc/ar-key.c#L324" id="L324" class810x6f="+co810=len" class="sref">len<810=le>10xlinen class="comment">/* t9"
10x7f="+8                aea>ta810de=>10xa href="+code=princ"""""""""charoklen" class="sre_uspc/ar-key.c#L222" _uspcass="line" name="L21 305     n_elem,3siz_reass="ine" name="L21, buf7;xss="eref="net/rxrpc/ar-key.c#L294"810x9f="+co810ef="+code=data_len" cla810ef=>10xef="="line" name="L307"> 307
 810ss=>10ss361"> 361                ass="liey_L32">3" id="L203" clLss="liey_L32">3ass="line" name="L21<32">3" id="L203" clL32">lass)n=%u]",  320     810me=>10s1361"> 361                akrb5_="stcipl3" id="L203" cl_leave(10sL361"> 361n_elem,3siz_reass="ine" name="L21n_elem,3siz_ass)n=%u]", tokle810len>10s3361"> 361,  3810s=">10sef">EINVAL;
              , cn7;xass, "> 305     <32"siz_f">n_elem,332"siz_ass, "> 305     n_elem,3n32"sass, "> 305     <32"f">n_elem,332"ass, "> 305     , 10s5f">EINVAL;
 305     <32"siz_sf">n_elem,332"siz_sine"[" id="L327" claAFSTOKEN_MAXf">n_elem,3AFSTOKEN_MAXine"]n=%u]",  324
n_elem,3loopass)n=%u]", "n_elem %d&quo810s8f="+co810ged data
10s =  {xrpc/ar-key.        (struct 10s"L338" class="line" name="L338"> 38103ef="+co810                       810   >10  = /* tet/ we don't know weat rorm we should"f">prilnon-AFS
 361 348n_elem,3emcpmpss="l="sref">loop {afs@.c#L344" id="  4) !=s class="sref">GFP_KERNEL);
810 2f="+co810                 10 L361"> 361     e=f">prilc->,  361, cn7;xass,asl317" id="L317"Pnam7;x", nam7;xss="l="sref">loop 333   810nam>10      return 0;
10 5f">E#def_tos="sref">looploopn_elem,3Xine") ((l="sref">loopn_elem,3Xine") + 3) >p1es ~3class="sref">GFP_KERNEL);
810 6f="+co810/a>        struct >10 gt; 2;
/* tet/ AFSpril 3 XDR rorm, so we=need toawork out-ke ceiz_ ofa>
_t810tok>10  href class="comment">/* t9"""""""""*-ke cXDR 
10 ef="+code=_toklen" class="srsiz_f">n_elem,3siz_ass)asl2"*-4;="+cclass="comment">/* tet/ flags, cella hr 7;x 
10  f="+code=_toklen" class="srsiz_f">n_elem,3siz_ass)a+ss="sref">looploop, cn7;xass,);ef="+cclass="comment">/* tet/ cella hr 
10 ef="+code=_toklen" class="sLsiz_f">n_elem,3siz_ass)a+ss1"*-4;="cclass="comment">/* tet/ 32">l+)
u327
10 3361"> 361n_elem,3n32"sass,"ssen=%u]", 10 ef">EINVALloop3" id="L203" clL32">lass)"ss="sref">loop 305     <32">3" id="L203" clL32">lass)n > 305     <32">3" id="L203" clL32">lass)"ss="sref">loop3" id="L203" clL32">lass)>"tag %x l.nexef">n_elem,3nexeine") "line" name="L307"> 307
l+code=ntohl" clt32"siz_f">n_elem,332"siz_ass,"ss4;="+"cclass="comment">/* tet/ sec idexl7
nt810=nt>10 gt; 2;
10 ode=princ" class="srEswitchal="sref">loop3" id="L203" clL32">lass)>"tag %x l/ecuritx_iidexef">n_elem,3ecuritx_iidexlass)) "line" name="L307"> 307
n710=n_>10 a href="+code=princ""casos="sref">loop10 ef="+code=_t"sref">ls="sref"bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss8"*-4;="+="+"cclass="comment">/* tet/ viceid, vnoL,
/* t9"""""""""""""""""""""""""""""""""""""""""""""""""* end, primary, tkt7;x 
10la href="+code=u8" cl+="sref"bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss="sref">looploop3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/tiL20lhren" id="L203" clL3iL20lhrenss="en=%u]",  351     710me=>10lL361"> 361     e=u8" c" hbreakn=%u]", 10l *10l  loop10l=len" class="sref">l+="sref"bcode=ntohl" clt="stc" id="L203" cl<="stcass)n<="p1esrvstrin999-19 <32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/cli/* tquot;, cli/* ass)n=%u]", 10lline" name="L295"> 2ssssssssscode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" clt="stc" id="L203" cl<="stcass)>"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass="l-4;=%u]", _debug(<710ass>10lode=princ" class="srEINVALloopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt="stc" id="L203" cl<="stcass)>"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass=n7" id="L327" claloopf">n_elem,3loopass)++class="sref">GFP_KERNEL);
81058f="+co810a href="+code=n_elem" c710a h>10la href="+code=princ""""""""" href=""bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss="sref">looploop, nam7;xss="l="sref">loop"tag %x l.nVAL_partsf">n_elem,3nVAL_partsass=[" id="L327" claloopf">n_elem,3loopass)]es"+code=loop" class">n_name_pa8a10l9f="+co810ef="+code=n_elem" class710ef=>10lef="+code=_t"sref">ls="sref"bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" cltXN3" id="L203" clRXNDss="l="sref">loop, nam7;xss="l="sref">loop"tag %x l.realm" id="L203" clLsealmss="es"+code=loop" class">n_name_pa8a106ef="+co810"L359" class="line" nam710"L3>10"L*10"a href="+code=u8" cl+="sref"bcode=ntohl" clt="stc" id="L203" cl<="stcass)n<="p1esrvstrin999-19 <32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/er>_r+f">n_elem,3ecrnpchref="+code=loop" class="sref">loo710"2f="+co8101" id="L361" class="lin7101" >10"L361"> 361     e=u8" c" hine" name="L21C32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" clt="stc" id="L203" cl<="stcass)>"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass="l-4;=%u]",  362<710lin>10" loopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt="stc" id="L203" cl<="stcass)>"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass=n7" id="L327" claloopf">n_elem,3loopass)++class="sref">GFP_KERNEL);
81064f="+co810d = n_elem,332"siz_ass,"+ss="sref">looploop, nam7;xss="l="sref">loop"tag %x l.nVAL_partsf">n_elem,3nVAL_partsass=[" id="L327" claloopf">n_elem,3loopass)]es"+code=loop" class">n_name_pa8a1065f="+co810p" class="sref">loop10"=len" class="sref">l+="sref"bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" cltXN3" id="L203" clRXNDss="l="sref">loop, nam7;xss="l="sref">loop"tag %x l.realm" id="L203" clLsealmss="es"+code=loop" class">n_name_pa8a1066f="+co810   href="+code=princ" c710   >10"gt; 2;
n_elem,332"siz_ass,"+ss8"+ code=ntohl" cltXN3" id="L203" clRXNDss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/ersion_f">n_elem,3ecsion_ass,ot;tag %x lc/ar-hren" id="L203" clL/ar-hrenss="en=%u]", 10" href="+code=td" class="sref">td10"ef="+code=_t"sref">ls="sref"bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss4 *s8"+ 2"l-4;=%u]", 10efhref="+code=td" class="sref">tdpri710pri>10ea href="+code=u8" cl+="sref"bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_addrcsi_sf">n_elem,3n_addrcsi_sass="l-8;=%u]",  271     710me=>10eL361"> 361     e=u8" c" hroral="sref">loopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_addrcsi_sf">n_elem,3n_addrcsi_sass=n7" id="L327" claloopf">n_elem,3loopass)++class="sref">GFP_KERNEL);
81073f="+co810line" name="L272"> 272<710lin>10e n_elem,332"siz_ass,"+sscode=ntohl" cltXN3" id="L203" clRXNDss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/addrcsi_sf">n_elem,3addrcsi_sass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lc/ar-hren" id="L203" clL/ar-hrenss="en=%u]",  273  710 na>10e     return 0;
l+="sref"bcode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" cltXN3" id="L203" clRXNDss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/tiL20lhren" id="L203" clL3iL20lhrenss="en=%u]", name_parts10eline" name="L295"> 2ssssssssscode=ntohl" clt32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" cltXN3" id="L203" clRXNDss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/tiL20l2hren" id="L203" clL3iL20l2hrenss="en=%u]", 10es="string">"n_elem %d&quo81078f="+co810ss="line" name="L277"> 710ss=>10ea href="+code=princ""""""""" ine" name="L21C32"siz_f">n_elem,332"siz_ass,"+ss4 + code=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_auth/ar-key.c#L365" idcn_auth/ar-ass="l-8;=%u]",  278     710me=>10eef="+code=_t"sref">ls="sref"broral="sref">loopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_auth/ar-key.c#L365" idcn_auth/ar-ass=n7" id="L327" claloopf">n_elem,3loopass)++class="sref">GFP_KERNEL);
8108ef="+co810ef">_leave(10efn_elem,332"siz_ass,"+sscode=ntohl" cltXN3" id="L203" clRXNDss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/auth/ar-key.c#L365" idcauth/ar-ass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lc/ar-hren" id="L203" clL/ar-hrenss="en=%u]", tokle710len>10ea href="+code=u8" cl+="sref"bbreakn=%u]",  2710s=">10e     return 0;
10e /* tet/ we hav a s3iL20l we can't en;x l 
 282
l+="sref"borntinuen=%u]",  2s" class="sref">rxk5->(struct 10es="string">"n_elem %d&quo81088f="+co810                 10ea href="+code=princ""t;tag %x lc_debu tokle32">l["net/u]: 32"siz_="net/u.c#L344" id="                n_elem,3n32"sass, "> 305     <32"siz_f">n_elem,332"siz_ass,en=%u]", ls> 305     loopn_elem,332"siz_ass, "clas= "> 305     n_elem,3AFSTOKEN_LENGTH_MAXass,en=%u]",  289  710 na>10 n="string">"n_elem %d&quo81091f="+co810href="+code=_toklen" cl710hre>10 a href="+code=u8" cl+code=ntohl" cl<32"siz_sf">n_elem,332"siz_sine"[" id="L327" clan32"sf">n_elem,3n32"sass,++]"ss="sref">loopn_elem,332"siz_ass,n=%u]",  361     e=t;tag %x l/eiz_f">n_elem,3siz_ass)a+ss="sref">loopn_elem,332"siz_ass,"+-4;=cclass="comment">/* tet/ each 32">l+hasa srengthaword 
tok710okl>10  rxk5->, 10 5f">E#undefscode=ntohl" cltXN3" id="L203" clRXNDss="return 0;
10 ode=princ" clname!code=ntohl" cltbuffpc/ar-key.c#L222"buffpcass, ||"ine" name="L21, buf7;xss="aclasscode=ntohl" clteiz_f">n_elem,3siz_ass)class="sref">GFP_KERNEL);
81098f="+co81010 a href="+code=princ""f">priline" name="L21n_elem,3siz_ass)n=%u]", 10 "L338" class="line" name="L338"> 3811ref="+co811ref=  loop, 110ef="+code=_toklen" class="sLzerc/ar-key.c#L222, looploopn_elem,3lass))                               \=%u]", tok711rkl>11r , looploopn_elem,3lass));            \=%u]", 11r=len" class="sref">l+name="L348"> 348loop 305     ,  2sssssssssgotoa>;
, 11rode=princ" c5" while( class="sref">GFP_KERNEL);
811r8f="+co811ra href="+code=EINVAL" 711ra >11r href#def_tos="sref">looploop 305     n_elem,3sass))                                               \=%u]", 11ref="+code=_t"do {                                                            \=%u]", xdr111f              <_3" id="L203" cl<_lass,"ssl="sref">loop,  310     811me=>111a href="+code=u8" cl+code=ntohl" clloop, 111L361"> 361     e=name="L348"> 348looploopn_elem,3sass)) "> 305     <_3" id="L203" cl<_lass,) !=s c                    \=%u]",  312             811"> >111 ,  313     811me=>111   348p1es 3">p1es>p1es                                           \=%u]",  314          811314>111=len" class="sref">l+="sr="L348"> 348 348p1esrvstrin999-19  348p1es 3)) !=s c \=%u]", len<811=le>111line" name="L295"> 2sssssssssgotoa>;
, 111ode=princ" class="srEklen" class="srxdc/ar-key.c#L222"xdcass,"+ssl="sref">loopgt;>gt; 2n7                                  \=%u]", ta811de=>11xa href="+code" while( class="sref">GFP_KERNEL);
811x9f="+co811ef="+code=data_len" cla811ef=>11xef="=#def_tos="sref">loop = loopn_elem,3lass))                                     \=%u]",  811ss=>11ss361"> 361,  320     811me=>112a href="+code=u8" cl+code=ntohl" cl = loop = loopn_elem,3lass));              \=%u]", _leave(112L361"> 361     e=name="L348"> 348loopp1esrvstrin999-19 <>, tokle811len>112 ,  3811s=">112  gt;>gt; 2n7                         \=%u]", 11s5f">EINVALGFP_KERNEL);
81126f="+co811="L324"> 324
looploopn_elem,3sass))                           \=%u]",  361, n_elem,3_sass,"ssl="sref">loopn_elem,3sass));           \=%u]", ls> 305     loop, nam7;xss="l="sref">loopn_elem,3_sass,) "> 305     <_sf">n_elem,3_sass,);    \=%u]", GFP_KERNEL);
81131f="+co811                       811   >113name_parts" class="sref">n_name_pa711 2f="+co811                 11 L361"> 361/* tet/ flags 
 361loop, cn7;xass, "> 305     /* tet/ cella hr 
 333   811nam>113ef">EINVAL;
loopn_elem,3n32"sass,en=%u]", 113L354"> 354                    81136f="+co811/a>        struct >1136f">EINVAL;
n_elem,332"ass,"ssen=%u]", loop3" id="L203" clL32">lass)"ss="sref">loop 305     <32">3" id="L203" clL32">lass)n > 305     <32">3" id="L203" clL32">lass)"ss="sref">loop3" id="L203" clL32">lass)>"tag %x l.nexef">n_elem,3nexeine") "line" name="L307"> 307
_t811tok>113a href="+code=princ""t;tag %x lc32"siz_f">n_elem,332"siz_ass,"sst;tag %x lc32"siz_sf">n_elem,332"siz_sine"[" id="L327" cla32"f">n_elem,332"ass,++]n=%u]", 113ef="+code=_t"sref">ls> 305     loopn_elem,332"siz_ass,en=%u]", 114f, 114a href="+code=u8" cl+code=ntohl" clloop3" id="L203" clL32">lass)>"tag %x l/ecuritx_iidexef">n_elem,3ecuritx_iidexlass))n=%u]", 114 loop3" id="L203" clL32">lass)>"tag %x l/ecuritx_iidexef">n_elem,3ecuritx_iidexlass)) "line" name="L307"> 307
114  loop11 =len" class="sref">l+=u8" cl+code=ntohl" clloop3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/vice_i="L309" class="pvice_i=ass))n=%u]", nt811=nt>114line" name="L295"> 2ssssssssscode=ntohl" cltENCODE/ar-key.c#L222loop3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/vnoL"L309" class="pknoLass))n=%u]", 11 ode=princ" class="srEsssssssscode=ntohl" cltENCODE_DATA"L309" class="pENCODE_DATAss="l8 "> 305     <32">3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/ecsion_n711=n_>11 a href="+code=princ""sssssssscode=ntohl" cltENCODE/ar-key.c#L222loop3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/staref">n_elem,3stareass))n=%u]", 11 ef="+code=_t"sref">ls="sref"bcode=ntohl" cltENCODE/ar-key.c#L222loop3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/expir> < 0 || 115floop3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/primary_flag"L309" class="pprimary_flagass))n=%u]", 11la href="+code=u8" cl+="sref"bcode=ntohl" cltENCODE_DATA"L309" class="pENCODE_DATAss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/tiL20lhren" id="L203" clL3iL20lhrenss=" "> 305     <32">3" id="L203" clL32">lass)>"tag %x l/kd="L309" class="pkd=ass,>"tag %x l/3iL20l" id="L203" clL3iL20lass))n=%u]",  351     711me=>11lL361"> 361     e=u8" c" hbreakn=%u]", 11l *11l  loop11l=len" class="sref">l+="sref"bcode=ntohl" clt="stc" id="L203" cl<="stcass)n<="p1esrvstrin999-19 <32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/cli/* tquot;, cli/* ass)n=%u]", 11lline" name="L295"> 2ssssssssscode=ntohl" cltENCODE/ar-key.c#L222loop"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass=)n=%u]", _debug(<711ass>11lode=princ" class="srEINVALloopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt="stc" id="L203" cl<="stcass)>"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass=n7" id="L327" claloopf">n_elem,3loopass)++class="sref">GFP_KERNEL);
81158f="+co811a href="+code=n_elem" c711a h>11la href="+code=princ""""""""" href=""bcode=ntohl" cltENCODE_STc/ar-key.c#L222IRNCODE_STcss="l="sref">loop"tag %x l.nVAL_partsf">n_elem,3nVAL_partsass=[" id="L327" claloopf">n_elem,3loopass)]en=%u]", 11lef="+code=_t"sref">ls="sref"bcode=ntohl" cltENCODE_STc/ar-key.c#L222IRNCODE_STcss="l="sref">loop"tag %x l.realm" id="L203" clLsealmss="en=%u]", 11"L*11"a href="+code=u8" cl+="sref"bcode=ntohl" clt="stc" id="L203" cl<="stcass)n<="p1esrvstrin999-19 <32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/er>_r+f">n_elem,3ecrnpchref="+code=loop" class="sref">loo711"2f="+co8111" id="L361" class="lin7111" >11"L361"> 361     e=u8" c" hine" name="L21CENCODE/ar-key.c#L222loop"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass=)n=%u]",  362<711lin>11" loopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt="stc" id="L203" cl<="stcass)>"tag %x l.n_NVAL_partsf">n_elem,3n_NVAL_partsass=n7" id="L327" claloopf">n_elem,3loopass)++class="sref">GFP_KERNEL);
81164f="+co811d = loop"tag %x l.nVAL_partsf">n_elem,3nVAL_partsass=[" id="L327" claloopf">n_elem,3loopass)]en=%u]", loop11"=len" class="sref">l+="sref"bcode=ntohl" cltENCODE_STc/ar-key.c#L222IRNCODE_STcss="l="sref">loop"tag %x l.realm" id="L203" clLsealmss="en=%u]", 11"gt; 2;
loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/ersion_f">n_elem,3ecsion_ass,ot;tag %x lctag"L309" class="ptagass))n=%u]", 116a href="+code=princ""sssssssscode=ntohl" cltENCODE_DATA"L309" class="pENCODE_DATAss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/ersion_f">n_elem,3ecsion_ass,ot;tag %x lc/ar-hren" id="L203" clL/ar-hrenss=",=%u]", 11"ef="+code=_t"sref">ls="sref"bnc""sssssssscode=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/ersion_f">n_elem,3ecsion_ass,ot;tag %x lc/ar-" id="L203" clL/ar-ass))n=%u]", 11efhref="+code=td" class="sref">tdpri711pri>11ea href="+code=u8" cl+="sref"bcode=ntohl" cltENCODEd = loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/authtim_f">n_elem,3authtim_ass))n=%u]",  271     711me=>11eL361"> 361     e=u8" c" hcode=ntohl" cltENCODEd = loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/staretim_f">n_elem,3staretim_ass))n=%u]",  272<711lin>11e  = loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/endtim_f">n_elem,3endtim_ass))n=%u]",  273  711 na>117   = loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/renew_til3" id="L203" cl, l+="sref"bcode=ntohl" cltENCODE/ar-key.c#L222loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/is_sea>name_parts11eline" name="L295"> 2ssssssssscode=ntohl" cltENCODE/ar-key.c#L222loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/flags" id="L203" clRflagsass))n=%u]", 11es="string">"n_elem %d&quo81178f="+co811ss="line" name="L277"> 711ss=>11ea href="+code=princ""""""""" ine" name="L21CENCODE/ar-key.c#L222loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_addrcsi_sf">n_elem,3n_addrcsi_sass=)n=%u]",  278     711me=>11eef="+code=_t"sref">ls="sref"broral="sref">loopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_addrcsi_sf">n_elem,3n_addrcsi_sass=n7" id="L327" claloopf">n_elem,3loopass)++c "line" name="L307"> 307
_leave(11efloop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/addrcsi_sf">n_elem,3addrcsi_sass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lctag"L309" class="ptagass))n=%u]", tokle711len>11ea href="+code=u8" cl+="sref"b="sref"bcode=ntohl" cltENCODE_DATA"L309" class="pENCODE_DATAss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/addrcsi_sf">n_elem,3addrcsi_sass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lc/ar-hren" id="L203" clL/ar-hrenss=",=%u]",  2711s=">118L361"> 361     e=u8" c" h cl+="sref"b="sref"bcode=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/addrcsi_sf">n_elem,3addrcsi_sass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lc/ar-" id="L203" clL/ar-ass))n=%u]", 11e rxk5-> 282
l+="sref"bcode=ntohl" cltENCODE_DATA"L309" class="pENCODE_DATAss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/tiL20lhren" id="L203" clL3iL20lhrenss=" "> 305     <32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/tiL20l" id="L203" clL3iL20lass))n=%u]",  2s="sref"bcode=ntohl" cltENCODE_DATA"L309" class="pENCODE_DATAss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/tiL20l2hren" id="L203" clL3iL20l2hrenss=" "> 305     <32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/tiL20l          ss="cetiL20l ass))n=%u]", "n_elem %d&quo81188f="+co811                 11ea href="+code=princ""="sref"bcode=ntohl" cltENCODE/ar-key.c#L222loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_auth/ar-key.c#L365" idcn_auth/ar-ass=)n=%u]", lsssssssssroral="sref">loopn_elem,3loopass)"ssen7" id="L327" claloopf">n_elem,3loopass)aclasscode=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/n_auth/ar-key.c#L365" idcn_auth/ar-ass=n7" id="L327" claloopf">n_elem,3loopass)++c "line" name="L307"> 307
 289  711 na>119floop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/auth/ar-key.c#L365" idcauth/ar-ass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lctag"L309" class="ptagass))n=%u]", 11 a href="+code=u8" cl+295"> 2s="sref"bcode=ntohl" cltENCODE_DATA"L309" class="pENCODE_DATAss="l="sref">loop3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/auth/ar-key.c#L365" idcauth/ar-ass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lc/ar-hren" id="L203" clL/ar-hrenss=",=%u]",  361     e=code=u8" cl+295"> 2s="sref"bcode=ntohl" clt32">3" id="L203" clL32">lass)>"tag %x l/k5" id="L203" clRk5ass)>"tag %x l/auth/ar-key.c#L365" idcauth/ar-ass=[" id="L327" claloopf">n_elem,3loopass)]ot;tag %x lc/ar-" id="L203" clL/ar-ass))n=%u]", tok711okl>119 rxk5->, , 119L354"> 354                    81196f="+co811ar-key.c#L295" id="L295711ar->119line" name="L295"> 2sdefault:> 354                    81197f="+co811ey.c#L296" id="L296" cl711ey.>119ode=princ" class="srEINVAL, 11 a href="+code=princ""""""""" breakn=%u]", 119ef="+code=_t"sref">ls" class="sref">rxk5->td120a href="+code=u8" cl+code=ntohl" cl,  361     e=code=u8" ccode=ntohl" clt32"siz_f">n_elem,332"siz_ass,en=%u]", tok712rkl>12r rxk5->, 1205f">E#undefscode=ntohl" cltENCODE_STc/ar-key.c#L222IRNCODE_STcss="return 0;
12rode=p#undefscode=ntohl" cltENCODEd = 12r href#undefscode=ntohl" cltENCODE/ar-key.c#L222 38121ef="+co812xdr" class="sref">xdr121 f="+code=_toklen" class="srASSERTCMPde=max_n_elem" ASSERTCMPss="l="sref">loopn_elem,332"ass), ==,               n_elem,3n32"sass,en=%u]",  310     812me=>121ef="+code=_toklen" class="sLASSERTCMPde=max_n_elem" ASSERTCMPss="l(charoklen" class="sLe_uspc/ar-key.c#L222" _uspcass="l)"ine" name="L21n_elem,3siz_ass)cn=%u]", 121L361"> 361n_elem,3hreav_ss="l=toklen" class="sref">toklen<="net/zu.c#L344" id="                n_elem,3siz_ass)cn=%u]",  312             812"> >121 priline" name="L21n_elem,3siz_ass)n=%u]",  313     812me=>121   314          812314>121=len"t;tag %x l/fault/ar-key.c#L222"faultass=:> 354                    81216f="+co812=len" class="sref">len<812=le>1216f">EINVAL;
n_elem,3hreav_ss="l=toklen" class="sref">toklen<=-EFAULT.c#L344" id="cn=%u]", 121ode=princ" clf">pril-code=ntohl" cltEFAULT/ar-key.c#L222, ta812de=>12xa hre" class="sref">rxk5->12xef="=


The original LXR software by thos="sref">lhttp://sourceforge.ef">projects/lxc/>LXR nt">unitlass= "this experi>/* al verion_ by ="sref">lmailto:lxc@ataux.no,3lxc@ataux.noass=.
lxc.ataux.no kindly hosted by ="sref">lhttp://www.redpill-atapro.no,3Redpill Ltapro ASass= "provider of Ltaux"c