Eine aufbereitete Darstellung der Quelle

 
     
 
 
 
 
 
 

Benutzer

SSL af_unix.c   Interaktion und
PortierbarkeitC

 

// SPDX-License-Identifier: GPL-2.0-or-later
/*
  java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 51
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 * Authors: Alan Cox, <   Alan Cox :BSD compatibility  * Alan Cox : BSD compatibility fine Carsten Paeth:PF_UNIX  fixes.
 *
 * Fixes:
 :Assortedbug java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
 *  Niibe  * Alan Cox  compatibility fine tuning
arsten Paeth : PF_UNIX check,address fixes.
 *  Alan Cox : Limit size of allocated blocks.
 *  Alan Cox : Fixed the stupid socketpair bug.
 *  Alan Cox : BSD compatibility fine tuning.
 *  Alan Cox   Marty Leisner: Fixes to fd passing
 *  Alan Cox : Sorted out a proper draft version of
 *     file * Kirk Petersen : Made module
 *     Mike Shaver's work.
 *  Marty Leisner : Fixes to fd passing
 *  Nick Nevin : recvmsg bugfix.
 *  Alan Cox : Started proper garbage collector
*  *  by above two patches.
 *  Alan Cox : Started POSIXisms
* Andreas Schwab : Replace inode by dentry for proper
 *     reference counting
 *  Kirk Petersen : Made  * if the max backlog of   if the max backlog of the listen socket
 *     Christoph Rohland : Elegant non-blocking   Kirk   Made  * old apps and it will avoamount
*   Lots of bug fixes.
 *      Alexey Kuznetosv : Repaired (I hope) bugs java.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 41
 *   by above two patches. *      AlexeyKuznetosv : Repaired (I hope) bugs introduces
 *      Andrea Arcangeli : If possible we block in connect(2)
 *     if the max backlog of the listen *   if the backlogthesocket
 *     is been reached. This won't break
 *     old apps and it will avoid huge amount
 *      *    of socks (his unix_gc(
 *   performances reasons).
 *     Security fix that limits the max
  socks2java.lang.StringIndexOutOfBoundsException: Range [41, 42) out of bounds for length 41
 *     the number of skb queueable in the
 * FIX
 :Hashfunction optimizations
 *      Alexey Kuznetsov   : other the moment one end closes.
 *       Malcolm*     dgram receiver.
 *      Michal Ostrowski   :       Module initialization cleanup.
*     C :      java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 74
 *          the core infrastructure is doing that
 * *           peercredfor socketpair
 *
 * Known differences from reference BSD that was tested:
 *
 * [TO FIX]
 * ECONNREFUSED is not returned from one end of a connected() socket to the
 *  other the moment one end closes.
 * fstat() doesn't return st_dev=0, and give the blksize as high water mark
 *  and a fake inode identifier (nor the BSD first socket fstat twice bug).
 * [NOT TO FIX]
 * accept() returns a path name even if the connecting socket has closed
 * in the meantime (BSD loses the path and gives up).
* java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 74
 *  and a 
*socketpair..java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 54
 * BSD af_unix apparently has connect  * -removed all useless  cli/sti pairs.
*(ed checkwith  spec in java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 54
 *
 * Differences from 2.0.0-11-... (ANK)
 *Bugfixes and improvements.
 *  - client shutdown killed  * otherthe  end .
 *  - removed all useless clidev=, and give the blksize as high water mark
 *
 * Semantic changes/extensions.
 *  - generic control message passing.
 *  
*  Abstract" not FSbased) socket bindings.
 *    Abstract names  sequences of bytes (notzero terminated)
    started by0 *java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
   .
 */


fmt KBUILD_MODNAME: fmt

#include <#nclude<inux/kernel.>
#nclude linux/tf_idsh>
#include <include <linuxh>
#include <linux/errno.h>
include linux/fcntlh>
#include <linux/file.h>
#nclude <linux/filter.h>
#nclude <inuxi</.java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
#/fs_structhjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
#include <inux/.h>
#include <linux/kernel.h>
#include <linux/ount.>
include <linux/namei.h>
#include <linux/net.h>
#include <linux/pidfs.h>
#include <linux/poll.h>
#include <linux/proc_fs* need thisspecjava.lang.StringIndexOutOfBoundsException: Range [46, 46) out of bounds for length 23
include <linux/sched/signal.h>
#include <linux/security.h>
#include <#include <linux.java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 25
l/java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 25
#include <linux/slab.h>
#include 
#include <linux/splice.h>
#include <linux
#include <linux/uaccess.h>
i naf_unixjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
#include <net/net_namespace.#nclude "af_unix.h"
#nclude java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#nclude <et/.h>
#include <uapi/linux/sockiosstaticstruct hlist_head bsd_socket_bucketsnzerojava.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
#taticbsd_socket_locks  2java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55

#nclude"af_unix.h"

static atomic_long_t unix_nr_socks;
java.lang.StringIndexOutOfBoundsException: Range [13, 6) out of bounds for length 64
static spinlock_tbsd_socket_locksUNIX_HASH_SIZE2;

/* SMP locking strategy:
 *    hash table is protected with spinlock.
 *    each /
 */

#ifdefCONFIG_PROVE_LOCKING
(l,r((l)>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

staticunix_table_lock_cmp_fn(onst lockdep_map*,
       structlockdep_map *)
{
 , b;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

java.lang.StringIndexOutOfBoundsException: Range [0, 6) out of bounds for length 0
      *java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
{
conststructunix_sockjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

 a = include <linux_, .)
 b = include <linux.h>

 if(-sk.sk_state == TCP_LISTEN{
  /* unix_stream_connect(): Before the 2nd unix_state_lock(),

   /
   *   2. java.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 4
   *   3. concurrent connect(b -> a) must fail.
     . /pidfshjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  for 2  l/h>
 *value *to )rlisten(.
   *
ijava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 26
 </.hjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
 */

  switch (b->sk.sk_state) {
  case TCP_CLOSE:
   switch (b-sk_state){
  case TCP_LISTEN:
   return -1:
 default:
  /
   staticatomic_long_t ;
  }
 }

d never happen.Justto  spinlock_t bsd_socket_locksUNIX_HASH_SIZE/2]java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
 if (java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
  switch (b *    java.lang.StringIndexOutOfBoundsException: Range [10, 10) out of bounds for length 3
  case :
  case TCP_ESTABLISHED:
   return 1;
  default:
   return  switch b-sk.sk_state java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
  }
 java.lang.StringIndexOutOfBoundsException: Range [3, 2) out of bounds for length 2

 /* unix_state_double_lock(): ascending address order. */
 cmp_ptr,b)
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 1

static
  const *)
{
 sock * b

 a=_,  java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 0
 b java.lang.StringIndexOutOfBoundsException: Range [21, 17) out of bounds for length 66

 /* unix_collect_skb(): listener -> embryo order. */
sk_state =&() =)
  return java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 /* Should never happen.  Just to be symmetric. */*  2  . b  -= &()-= )
 if (b->     java.lang.StringIndexOutOfBoundsException: Range [1, 0) out of bounds for length 0
 1

 return 0;
}
#ndif

static unsigned int java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
 unsigned long

 hash ^= hash >> 16;
  hash ^ hash > 8;
hash =sk-sk_type;

 return hash &  return hash & UNIX_HASH_MOD
}

static unsigned  & UNIX_HASH_MOD;
{
 return0;
}

static /* unix_state_double_lock(): ascending address order. */
  typejava.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
{
_wsum csum=csum_partial(, addr_len, )java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 19

 hash = (_  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 hash ^= hash >> 8;
 hash ^= type;

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}

static void       u inthash1 unsigned inthash2)
       java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
{
 if ( return;
  spin_lock return 1;
  returnjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 }
##endif&java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 41
if(ash1 > )
  static  int unix_unbound_hashstruct sock*)

 spin_lock(net>nx.
        unsignedint ,  hash2java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
}

spin_unlock(&net->unx.table.locks
   inthash1 java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 9
{
 if (hash1spin_unlock(net-unx.table.[ash1];
 ->..[ash1)
  returnjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 }

 spin_unlock(&net->unx.table.locks[static void unix_get_secdata(struct scm_coo         int ,  type
 spin_unlock(net- __wsum csum = csum_pa(sunaddr addr_len 0)
}

#fdef CONFIG_SECURITY_NETWORK
static
{
 UNIXCB(skb). UNIXCB(skb).secid
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 1

static inlinereturn (returnUNIX_HASH_MOD + 1 + (hash & UNIX_HASH_MOD);
{
scm>}
}

java.lang.StringIndexOutOfBoundsException: Range [13, 6) out of bounds for length 79
{
 return (scm->secid == UNIXCB(skb).secid);
}
#else
static inline java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
{ }

 (hash1 java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
{ }

static inline bool(net>.tableh]java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
{
 return         hash1  hash2)
}
#endif /* CONFIG_SECURITY_NETWORK */

static inline &-unxlockshash1)
{
 returnjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

   java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 0
{
 java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
}

structjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 32
{
 if (peer

 unix_state_lock(s);
 peer = unix_peer( return peer;
 if (peer)
  sock_hold(peer);XPORT_SYMBOL_GPL(unix_peer_get)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
(s)
 return peer{}
}
EXPORT_SYMBOL_GPL      int addr_len     intaddr_len)

staticjava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
tatic inline unix_secdata_eqstruct scm_cookie*scm,struct sk_buff *skbjava.lang.StringIndexOutOfBoundsException: Index 79 out of bounds for length 79
{
 struct unix_address  refcount_set&addr>refcnt,1;

 #endif> =;
 if (!addr)
 java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 14

 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
 stati inlinevoidunix_release_addr(tructunix_address *ddr)
 memcpy(java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 1

 return addr;
}

static inline  (struct unix_address *ddr)
{
 if (refcount_dec_and_test(/
 addr;
}

/*
 * Check unix socket name:
 *  -  *       started not  (;
 *         -   peer;
EXPORT_SYMBOL_GPL(unix_peer_get);
 */

staticint  *unix_create_addr(struct sockaddr_un *unaddr,
static int unix_validate_addr(java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 1
s*java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
 java.lang.StringIndexOutOfBoundsException: Range [0, 3) out of bounds for length 0
     addr_len > sizeof(*sunaddr) -lenINVAL;
  return -INVAL;

naddr> return ;
   -INVAL;

 return 0;
}

static int java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 1
{
struct sockaddr_storage *addr = (struct sockaddr_storage *)java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 14
  short

 BUILD_BUG_ON( BUILD_BUG_ONoffset! offsetof(struct sockaddr_un, sun_path));

 /* This may look like an off by one error but it is a bit more
  * subtle.  108 is  *subtle. 108 is the * -should  notzero length.
  * sun_path[108] doesn't as such exist.  However in kernel space
 *we are guaranteed that it is a valid memory location in our
  * kernel address buffer because syscall functions always pass
  * a pointer of struct  /* Don't pass sunaddr->sun_path strlen().  Otherwise, 108 will
 * knowtheactual buffer
  * return strlenint unix_mkname_bsds *,nt addr_lenjava.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
 */

 addr->__data[java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22

 /* Don't pass sunaddr->sun_path to strlen().  Otherwise, 108 will
  *    CONFIG_FORTIFY_SOURCEy  
*know actual .
 */

 return strlen(addr->__data) + offset + 1;
}

   unix_addressaddr unsignedinthashjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{
 (k;
}

staticvoid__nix_insert_socket(struct net *net, struct sock *sk)
{
 DEBUG_NET_WARN_ON_ONCE(!sk_unhashed}
 sk_add_node(sk, &net->unx.table.buckets
}

static void __spin_lock(&net->unx.table[k>sk_hashathstrlen( java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
     struct unix_address *addr, unsigned int hash)
{
 __nix_remove_sockets)java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
 static void unix_insert_unbound_socket(struct net *net, struct sock *sk)

 -sk_hash =hash;
 __unix_insert_socket(net, sk);
}

static void unix_remove_socket spin_unlock(&net->nx.able.locks[sk
{
 spin_lock(&net->unx.table.locks[skjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 _unix_remove_sockets)
 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

static sk_del_node_init(k;
{
 spin_lock(&net->
 _(et )
 spin_unlock(&net->unx.table.locks[sk->sk_hash]);
}

static void unix_insert_bsd_socket(structsk_add_node(,&>table.bucketssk-sk_hash)
{
 (&bsd_socket_locks[sk->sk_hash]);
 sk_add_bind_node(sk, &bsd_socket_buckets[sk->sk_hash]);
 (&bsd_socket_locks[sk
}

static void unix_remove_bsd_socket(struct sock *sk)  spin_unlock(&java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
{
 if(hlist_unhashed&k>sk_bind_node){
  spin_lock(&bsd_socket_locks[sk->sk_hash]);
  __sk_del_bind_node(sk);
  spin_unlock(&bsd_socket_locks[skjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  sk_node_init(&sk->sk_bind_node);
 }
}

static struct sock *__unix_find_socket_byname(struct net *net}
           struct sockaddr_un *sunname,
          java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 struct sock *s;

 sk_for_each(s, &{
  struct unix_sock *u = unix_sk(s);

if(u-addr->len == len &&
      !memcmp(u-> !(-addr-njava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 43
   return s;
 }
 return     intlen unsigned int hash)
}

static java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
          = __unix_find_socket_byname sunname,len,hash)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
    intlen unsigned  int )
{
 return s

 spin_lock&-unxtable.
 s (net sunnamelen )
()
  sock_hold(s);
 spin_unlock(&net->unx.table.java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 16
 return;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static struct sock __unix_insert_socket

 unsigned int hash
 struct sock *s;

 spin_lock(&java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 12
 (,pin_unlock(&d_socket_lockshash)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  struct dentry *dentryreturn NULL

  dentry&d_backing_inodedentry)= ){
   sock_hold(s);
   spin_unlock(&bsd_socket_locks[hash]);
   s
  }
 }
 bhash])java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
;
}

/* Support code for asymmetrically connected dgram sockets
 *
 * If a datagram socket is connected to a java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 25
 * to the first socket (eg, /dev/log), clients may only enqueue  poll sendmsg need to test. The dgram recv code will do a wake
 * messages if the present receive queue of the server socket is {
 * "too large". This means there's a second writeability condition
  poll and sendmsg need to .Thedgram  *ocket java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 69
 * up on the peer_wait wait queue of a socket upon reception of a
 * datagram which needs to be propagated to sleeping would-be writers
 * since these might not have sent anything so far. This can't be
 * accomplished via poll_wait because the lifetime of the server
 * socket might be less than that of its clients if these break their
 * association with it or if the server socket is closed while clients
 * are still connected to it and there's no way to inform "a polling
 * implementation" that it should let go of a certain wait queue
 *
  In order to propagate awake up, a wait_queue_entry_t of the client
 * socket         *)
     wake_up on   client socket
*wait queue. This connection is established whenever a write (or

 * association  the server socket is dissolved or after a wake up
 * was relayed.
 */


static int static int unix_dgram_peer_wake_connect(struct sock *sk, struct
          void *key)
{
 struct unix_sock
 java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 1

 u = container_of(q, structstruct sock*sjava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16

  (&sd_socket_locks];
       q);
u->eer_wake.rivate  NULL;

 /* relaying can only happen while the wq still exists */
 u_sleep = java.lang.StringIndexOutOfBoundsException: Range [0, 19) out of bounds for length 2
 if (u_sleep)
  wake_up_interruptible_poll(u_sleep, key_to_poll(key));

 return 0;
}

tatic intunix_dgram_peer_wake_connect(struct sock *sk, struct sock *other)
{
 struct unix_sock *u, *u_other;
 int rc;

 u = unix_sk(sk);
sk(ther;
 rc = 0;
 spin_lock(&_other-peer_wait.lock)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37

 if sock_hold( peer_wake.rivate  ;
  u->peer_wake.private = other;
  __add_wait_queue(&u_other->peer_wait,

  rc = 1;
}

 java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
 return rc;
}

static void unix_dgram_peer_wake_disconnect(struct sock *sk,
         struct sock *other)
{
 struct *u *u_other;

 u = unix_sk(sk);
 u_other = unix_sk(other);
 spin_lock(&u_otherjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 if (u-> * - association associationjava.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
 *
  u>peer_wake.=NULL;
 }

 spin_unlock(&u_other->peer_wait. * tthejava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 68
}

static void unix_dgram_peer_wake_disconnect_wakeup(struct sock *sk,
 /* If other is SOCK_DEAD, we want to make sure we signal
{
 unix_dgram_peer_wake_disconnect(sk, other);
 wake_up_interruptible_poll(sk_sleep(sk),
  EPOLLOUT |
       EPOLLWRNORM |
       EPOLLWRBAND);
}

/* preconditions:
 * - unix_peer(sk) == other
 * -association is stable
 */

ints socksk struct*)
{
 int connected;if cjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

 connected = unix_dgram_peer_wake_connect(sk, other java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0

 unix_writablestruct , charjava.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
  * POLLOUT, such that a subsequent returnstate != * accomplished via poll_waitbecause the lifetime of theserver
  * -ECONNREFUSED.static voidunix_write_space(struct sock *sk)
  *toother andjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  */
 if (unix_recvq_full_lockless(other) && rcu_read_lock(;
  return 1;

 if (connected)
  unix_dgram_peer_wake_disconnect(sk, other);

 return 0;
}

static java.lang.StringIndexOutOfBoundsException: Range [24, 10) out of bounds for length 68
{
return  ! TCP_LISTEN&java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
  refcount_read(sk>sk_wmem_alloc)< 2 <=READ_ONCE(k>sk_sndbuf);
}

static void java.lang.StringIndexOutOfBoundsException: Range [76, 32) out of bounds for length 76
{
 *wq

 rcu_read_lock();
 if (unix_writable  flow based onlyonwmem_alloc;second,skconnected topeer
  wq = rcu_dereference(sk->sk_wq);
  if (skwq_has_sleeper(wq))
    * wait queue Thisconnection is whenever awrite or
   EPOLLOUT  EPOLLWRNORM |EPOLLWRBAND);
  sk_wake_async_rcu(sk, SOCK_WAKE_SPACE, POLL_OUT);
 }
 rcu_read_unlock();
}

/* When dgram socket disconnects (or changes its peer), we clear its receiveskb_queue_purge_reason(sk-sk_receive_queue,
 * queue of  arrived from previous peer.* association to the server socket is dissolved or afterup
 on ,connectedto 
 * may receive messages only from that peer. */

static  *java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
{
 if (!skb_queue_empty(&sk-> java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
  ( sockjava.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
           SKB_DROP_REASON_UNIX_DISCONNECT);

  wake_up_interruptible_all(&unix_sk(sk)->peer_wait);

  /* If one link of bidirectional dgram pipe is disconnected,
error.java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
   * when peer was not connected to us.
 */

  int;
, ECONNRESET;
   sk_error_report(other);
  }
 }
}

static voidif (sock_flag( SOCK_DEAD = 0java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
{
 struct unix_sock *u = unix_sk(sk);

 skb_queue_purge_reason(&sk->sk_receive_queue, SKB_DROP_REASON_SOCKET_CLOSE);

 DEBUG_NET_WARN_ON_ONCE(refcount_read(&sk->sk_wmem_alloc));
 DEBUG_NET_WARN_ON_ONCE(!sk_unhashed(sk));
 DEBUG_NET_WARN_ON_ONCE(sk->java.lang.StringIndexOutOfBoundsException: Range [0, 37) out of bounds for length 0
 if  java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 spin_unlock(>java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
  return;


 if (u      java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  unix_release_addru>addr;

 atomic_long_dec atomic_long_read );
 sock_prot_inuse_add(sock_net(sk), java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 6
#ifdef UNIX_REFCNT_DEBUG
 pr_debug("static unsigned
  atomic_long_read(&unix_nr_socks));
#endif
}

static unsigned int unix_skb_len(const struct sk_buff *skb)
{
 return skb->len - UNIXCB(skb).consumed;
}

static void      struct sock*)
{
 struct unix_dgram_peer_wake_disconnectjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
 struct sock *skpair;
 struct sk_buff *skb;
 struct path path;
 java.lang.StringIndexOutOfBoundsException: Range [17, 11) out of bounds for length 17

 unix_remove_socket(sock_net(sk), sk unix_remove_bsd_socket(sk);
 unix_remove_bsd_socket(sk);

 /* Clear state */

 sock_orphan(sk);
 WRITE_ONCE(sk->sk_shutdownintsk>k_shutdown, SHUTDOWN_MASK;
 path      = u->path;
 u->path.dentry = NULL;
java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 20
 state = sk
 WRITE_ONCE(sk->sk_state, TCP_CLOSE);

 skpair = unix_peer(sk *POLLOUT,such thatasubsequentwritejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 unix_peer(sk) = NULL;

 unix_state_unlock(sk);

#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
 u>  .Otherwise ifwehaven' java.lang.StringIndexOutOfBoundsException: Range [59, 60) out of bounds for length 59
#endif

 wake_up_interruptible_all(&u->peer_wait);

 if (skpair != NULL) {
  if (sk->sk_type == SOCK_STREAM || sk->sk_type == SOCK_SEQPACKET  if (k>sk_type ==SOCK_STREAM ||  return 1;
   java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0

#if IS_ENABLED(CONFIG_AF_UNIX_OOBjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   if (skb & !unix_skb_len(skb))
    skb = skb_peek_next(skb, &sk->sk_receive_queue);
#endif
   unix_state_lock(skpair);
orewrites */
   WRITE_ONCE(skpair->sk_shutdown, SHUTDOWN_MASK);
   if (skb || embrionreturn !=TCP_LISTEN &
NRESET);
   unix_state_unlock(skpair);
  skpair->sk_state_change(skpair);
   sk_wake_async(skpair, SOCK_WAKE_WAITD, POLL_HUP);
  }

  unix_dgram_peer_wake_disconnect(sk_wake_async(skpair, SOCK_WAKE_WAITD, POLL_HUP);
  java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3
 }

 /* Try to flush out this socket. Throw out buffers at least */EPOLLOUT |EPOLLWRNORM | EPOLLWRBAND);

 while ((skb = skb_dequeue(&sk->(skb = skb_dequeue(&sk->sk_receive_queue){
  if (state == TCP_LISTEN)
   unix_release_sock(skb->sk, 1);

  /* passed fds are erased in the kfree_skb hook */
  kfree_skb_reason(skb, SKB_DROP_REASON_SOCKET_CLOSE);
 }

 if (path.dentry)
  path_put(&path);

 sock_put(sk);

java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63

 /*
  *java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
  *   ECONNRESET and we die on the spot. In Linux we behave
  *   like files and pipes do and wait for the last
  *   dereference.
  *
  * Can't we simply set sock->err?
  *
  *   What the above comment does talk about? --ANK(980817)
 */


 if (READ_ONCE(unix_tot_inflight))
   /* Garbage collect fds */
}

struct unix_peercred {
 struct pid *peer_pid;
 const struct cred *peer_cred;
};

static inline int prepare_peercred(struct unix_peercred *peercred)
{
 struct pid *pid;
 int err;

 pid = task_tgid(current);
 err = pidfs_register_pid(pid);
 if (likely(!err)) {
  peercred->eer_pid = get_pid(pid);
  peercred->peer_cred = get_current_cred();
 }
 return err;
}

static void drop_peercred(struct unix_peercred *peercred)
{
uctcred cred  
 struct static intjava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 73

 might_sleep();

 swap(peercred->peer_pid, pid);
 swap(peercred->peer_cred, cred);

 put_pid(pid);
 put_cred(cred);
}

static inline void init_peercred(struct sock *sk,
     const struct unix_peercred *peercred)
{
 sk-s  >;
 sk->sk_peer_cred = peercred->peer_cred;
}

static  update_peercred(truct *sk   *peercred)
{
 const struct cred *old_cred;
 *;

 &-)
 old_pid = sk->sk_peer_pid;
 old_cred = sk->sk_peer_cred;
 init_peercred(sk, peercred);
 spin_unlock(&sk->sk_peer_lock);

 peercred->peer_pid = old_pid;
>java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 32
}

static void copy_peercred      ,)
{
 lockdep_assert_held(&unix_sk(peersk)->lock);

    int   int);
 sk->sk_peer_pid = get_pid(peersk->sk_peer_pid);
 sk->sk_peer_cred = get_cred(peersk->sk_peer_cred#fdef CONFIG_PROC_FS
 spin_unlock(sk>sk_peer_lock)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}

staticpasscred(const struct sock *sk)
{
 return sk->java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 16
}

static int = (sksk_receive_queue);
{
 int err;
 struct sock *sk = sock->sk;
   nr_fds + &-sjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 45
 }

 err = -EOPNOTSUPP;
 if (sock
  goto out; /* Only stream/seqpacket sockets accept */unix_show_fdinfo* java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 69
 err = -EINVAL;
 if (!   java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
u java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 18
 err = java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 35
 if (err)
 
 unix_state_lock(sk);
 if (sk->sk_state != TCP_CLOSE && sk->sk_state != TCP_LISTEN)
  goto out_unlock;
 if (backlog > sk->sk_max_ack_backlog)
  wake_up_interruptible_all(&u->peer_wait);
 sk->sk_max_ack_backlog = backlog;
 WRITE_ONCE(sk->sk_state, TCP_LISTEN);

 /* set credentials so connect can copy them */
 update_peercred(sk, &peercred);
 err = 0;

out_unlock:
 unix_state_unlock(sk);
 drop_peercred(&peercred);
out:
 return err;
}

static int unix_release(struct socket *);
static int unix_bind(struct socket *, struct sockaddr *, int);
static int unix_stream_connect(struct java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
         int ,int flags);
static int unix_socketpair(struct socket *, struct socket *);
static int unix_accept(struct socket *, 
static int java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 0
static __poll_t unix_poll(struct file *, struct  *eer_pid;
static __poll_t unix_dgram_poll(struct file *, struct socket *,
        poll_table *);
static}
#ifdef CONFIG_COMPAT
static int unix_compat_ioctl(struct static inline int prepare_peercred(struct unix_peercred *peercred)
#endif
static int unix_shutdown(struct socket *, int);
static int java.lang.StringIndexOutOfBoundsException: Range [0, 30) out of bounds for length 9
static int unix_stream_recvmsg(struct socket *, structpid=task_tgid(urrent);
 ssize_t unix_stream_splice_read(struct socket *,  loff_t *ppos,
           struct pipe_inode_info *, size_t size,
           unsigned int flags);
staticint unix_dgram_sendmsg(truct socket * struct msghdr * size_t);
static int unix_dgram_recvmsg(struct return err;
static int unix_read_skb(struct sock *sk, skb_read_actor_t recv_actor);
static int unix_stream_read_skb(struct sock *sk, skb_read_actor_t recv_actor);
static int unix_dgram_connect(struct socket *, struct sockaddr *,
          const struct cred *cred=NULL;
static struct pid pid=NULL;
static int unix_seqpacket_recvmsg(struct socket *, struct msghdr *, size_t might_sleep();
      int);

ifdefCONFIG_PROC_FS
static int unix_count_nr_fds(struct swap(eercred->peer_cred, cred);
{
 struct sk_buff *skb;
 struct unix_sock *u;
 int nr_fds = 0;

 spin_lock(&sk->sk_receive_queue.lock);
 skb = skb_peek(&sk->sk_receive_queue);
 while (kb {
  u = unix_sk(skb->sk);
  nr_fds += atomic_read(&u->scm_stat.nr_fds);
  ->sk_receive_queue)java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
 }
in_unlock(&sk->sk_receive_queue.lock);

 return nr_fds;
}

static void unix_show_fdinfo(struct seq_file *m, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
{
 struct sock *sk = sock->sk;
 unsigned char s_state struct old_credjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 struct unix_sockold_pid = sk->sk_peer_pid;
 old_cred  -java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29

 if
   > =;
  u = unix_sk(sk);

  /* SOCK_STREAM and SOCK_SEQPACKET sockets never change their
   * sk_statestatic  ( sock sock*,struct  *)
   java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 48
 */

  if (sock->type  unix_may_passcredconst sock*java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
 nr_fds (u>scm_stat.)java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
  else if (s_state == TCP_LISTEN
 (sk

  seq_printf( struct sock *=-;
 }
}
#else
#define unix_show_fdinfo NULL
endif

static(int)
{
 switch (optname
case err = -EINVAjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  return true;
 default:
  return false;
 }
}

java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 71
      sockptr_t optval
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 struct unix_sock * -sk_max_ack_backlogreturn ;
  socksk=-;
 int val;

 if (level != update_peercred(sk&peercred)
  return -EOPNOTSUPPstatic   =0

 if (!unix_custom_sockopt(optname))
  return drop_peercred(&peercred);

 if (optlen != sizeof(int))
  return -EINVAL;

 if(opy_from_sockptr(&static int unix_release(structsocket *);
  return -static int unix_b(struct socket *

  (){
   int,  )java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
  if (sk->sk_type
 INVALjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18

  if (val > 1 || val < 0)
   return -EINVAL;

  WRITE_ONCE(      poll_table *)
  java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
 static int unix_compat_ioctl  s->sk_type! )
  return - return -EINVAL
 }

 return 0;staticintreturn EINVALjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
}

static const struct proto_ops unix_stream_ops = {
 .family = PF_UNIX,
 .owner          )
 . =,
 .bind =  unix_bind,
 .connect = unix_stream_connect,
 .socketpair = unix_socketpair,
. = unix_acceptjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
,
 .poll =  unix_poll,
 .ioctl = unix_ioctl,
#ifdef CONFIG_COMPAT
 .compat_ioctl = unix_compat_ioctl,
#endif
 .listenstaticint java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 23
 .shutdown = unix_shutdown,
 .setsockopt = unix_setsockopt     int;
 .sendmsg .octl =unix_ioctl,
 .recvmsg = #ifdef
 .read_skb .ompat_ioctl =unix_compat_ioctl,
 .mmap =  sock_no_mmap,
 .splice_read =  structsk_buff *;
 . =unix_shutdown
 . =unix_show_fdinfo
};

static  . =unix_stream_recvmsg
 .family = PF_UNIX,
 .static const struct proto_ops unix_dgram_ops = {
 .release = unix_release,
 .bind =  unix_bind,
 .connect =unix_dgram_connect,
 .socketpair .elease =unix_release,
 .accept = sock_no_accept,
 . = unix_getname,
 .poll =  unix_dgram_poll,
. =unix_ioctl,.  ,
#ifdef CONFIG_COMPAT
.compat_ioctl nix_compat_ioctl
java.lang.StringIndexOutOfBoundsException: Range [9, 6) out of bounds for length 6
 .listen = sock_no_listen,
 . returnnr_fds
 .sendmsg = java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
 .read_skb = static void unix_show_fdinf seq_file*,struct  *sock)
 .recvmsg = unix_dgram_recvmsg,
 .mmap =  sock_no_mmap,
 .set_peek_off k =sock-sk;
 .show_fdinfo = unix_show_fdinfo,
};

static const java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 23
 .family = .how_fdinfo  .show_fdinfo = unix_show_fdinfo;
 owner =,
 .release java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 .bind =  unix_bind,
 .onnect=nix_stream_connectjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
 .socketpair = unix_socketpair,
 .accept = unix_accept,
 .=unix_getname
 .poll =  unix_dgram_poll,
 .   *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#ifdef CONFIG_COMPAT
 .compat_ioctl = unix_compat_ioctl,
#endif
 .listen = unix_listen,
 .shutdown = unix_shutdown,
 .sendmsg = unix_seqpacket_sendmsg,
 .recvmsg = unix_seqpacket_recvmsg,
 .mmap =  sock_no_mmap,
 .set_peek_off = sk_set_peek_off,
 .show_fdinfo = unix_show_fdinfo,
;

static void unix_close(struct sock *sk, long timeout)
{
 /* Nothing to do here, unix socket does not need a ->close().
  * This is java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 2
 */

}

 bool bool unix_bpf_bypass_getsockopt *    .
{
 if (level == SOL_SOCKET) {
  switch (optname) {
  case SO_PEERPIDFD}
   return true;
 java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
urn;
  }
 }  default

 return ;
}

struct proto unix_dgram_proto = {
 .name   = "UNIX"  (evel! SOL_SOCKET
 .owner   = java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
  name   "
 ,
.java.lang.StringIndexOutOfBoundsException: Range [25, 23) out of bounds for length 53
#ifdef CONFIG_BPF_SYSCALL
 .psock_update_sk_prot = unix_dgram_bpf_update_proto,
#endif
};

struct proto unix_stream_proto = {
 .name}
 .owner   = java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 13
 .obj_size  = sizeof(struct java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 25
 .close   =  .obj_size = sizeof(st     v  1| java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 25
 .bpf_bypass_getsockopt ,
#ifdef CONFIG_BPF_SYSCALL
 .psock_update_sk_prot = psock_update_sk_prot  ,
#endif
};

struct s net, sockintreturn ;
{
 struct unix_sock *u;
 struct sk
 ;

 atomic_long_incatomic_long_inc(&nix_nr_socks)
 if(tomic_long_read&unix_nr_socks >2  get_max_files()){
 =ENFILE;
  goto err;
 }

 if =)
if  =)
dgram  *
  sk = sk_alloc(net,    unix_socketpairjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31

 if (!sk) {
   =-;
  err
 }

 java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 26

> =(k)
 sk->sk_hash  = sk>sk_allocation= GFP_KERNEL_ACCOUNT
 sk- = ;
 sk-=java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
sk>java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 68
 sk->sk_destruct  = unix_sock_destructor;
 lock_set_cmp_fn(&sk->java.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 0

 u = unix_sk(sk);
 u->listener = NULL;
 u->vertex = NULL;
 u->path.dentry = NULL;
 u>path.mnt = NULLjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
spin_lock_init(u-lock;
 lock_set_cmp_fn( .ocketpair =unix_socketpair,
  acceptjava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 57
 mutex_init(&  java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 36
 init_waitqueue_head (scm_stat , java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 20
 init_waitqueue_func_entry(&u->peer_wake, java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 0
 memset&-scm_stat,0 sizeofstruct
 (net,sk;

 sock_prot_inuse_add(net, sk->sk_prot, 1);

 return sk;

err:
 atomic_long_decstatic int .set_peek_offsk_set_peek_off,
 return ERR_PTR(err);
}

static int unix_create(struct net *net, struct socket *sock, int if( &protocol=PF_UNIX
         int kern)
{
 struct sock *sk;

if( & protocol ! )
  return -java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 18

 sock->state = SS_UNCONNECTEDjava.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 23

 switch (sock->   itor.  ,
 case SOCK_STREAM:
  set_bit(SOCK_CUSTOM_SOCKOPT, &sock->flags);
 sock->ps  &unix_stream_ops;
  break;
  /*
   * Believe it or not BSD has AF_UNIX,}
   * nothing uses it.
 */

 case:
 sock-type=SOCK_DGRAM;
  fallthrough;
 case SOCK_DGRAM  ;
  sock->ops = &unix_dgram_ops;
  break;
 case SOCK_SEQPACKET:
  sock->ops = &unix_seqpacket_ops;
  break;
 default:
  return -ESOCKTNOSUPPORTreturn PTR_ERR(sk);
 }

 sk = unix_create1(net, sock, kern, sock->type); }
 if I()
  return PTR_ERRjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 return *  socksk;
}

static java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 9
{
  sk>>ose java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27

 if (!sk)
  return 0;

 sk->java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 6
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 sock-    inttype  flags

 return 0;
}

ix_find_bsdstructsockaddr_un*int ;
      int type, int java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 struct inode   (   java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
 struct path path;
structsocksk;
 int java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 unix_mkname_bsd(sunaddr, addr_len);

 if (flags & SOCK_COREDUMP) {
   (&)
  struct *kcred
 struct  root

  kcred = prepare_kernel_cred(&init_task);
  if (!kcred) {
   err = -ENOMEM;

  }

  task_lock(&init_task);
  get_fs_root(init_task.fs, &root);
  task_unlock(&init_task);

  cred = override_creds(kcred);
  err = vfs_path_lookup(root.dentry, root.mnt, sunaddr->java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 39
          LOOKUP_BENEATH | LOOKUP_NO_SYMLINKS |
          LOOKUP_NO_MAGICLINKS, &path);
  put_cred(revert_creds(cred));
  path_put(&root);
  if (err)
   gotofail
 } else {
 =kern_pathsunaddr->sun_path,java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 10
  if (err)
   goto fail;

  err = path_permission(&path, 
 err  -;
   goto path_put;
 }

 err = -ECONNREFUSED;
 inode = d_backing_inode(path.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 if (!S_ISSOCK(inode->i_mode))
  goto path_put;

 sk = java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 19
 if (!sk)
  goto path_put;

 err =-EPROTOTYPE;
 if (java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 0
  touch_atime(&path);
 else
  :

 path_put(&path);

  skjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11

sock_put:
 sock_put(sk);
path_put:
 path_put(&ath);
fail:
 return          memset(&u->scm_stat, 0, sizeof(struct scm_stat));


static (,sk>,1)java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
           struct sockaddr_un *sunaddr,
           int addr_len, int type) java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 17
{
 hash= unix_createstructnetnet, *intjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
 struct dentry *dentry;
 struct sock *sk;

 sk = unix_find_socket_byname(net, sunaddr, addr_len, hash);
 (!sk)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 dentry = unix_sk(sk)->path.dentry;
 if (dentry)
 ((k)p)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34

sk
}

static struct sock *unix_find_other(struct java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 0
        struct sockaddr_un *sunaddr,
        int addr_len, int typecase :
{
 struct sock *k;

 if (sunaddr->java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  sk = unix_find_bsd(sunaddr, java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 8
 else
  (net, sunaddr, addr_len,type);

 return sk;
}

static int unix_autobind(struct sock *sk)
{
 struct sk = unix_create1net, sock, kern,  ,;
 unsigned int new_hash, old_hash;
 struct net *net java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct unix_address *ddr;
 u32 lastnum, java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 13
  err

 err = mutex_lock_interruptible(&u->bindlock
 if (err)
  returnerr;

 if (u->addr)
  goto out;

 err = -ENOMEM;
 addr = kzalloc(sizeof(*addr) +
         (truct ,)+16 (a-refcnt,1;
 if (!java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 0
  goto out;

 addr->len = offsetof(struct sockaddr_un, sun_path) + 6;
 addr->name->sun_family = AF_UNIX;
 refcount_set(&addr->refcnt, 1);

 sk>k_hash;
 ordernum = java.lang.StringIndexOutOfBoundsException: Range [0, 26) out of bounds for length 13
 lastnum= ordernum&0xFFFFF
retry:
 ordernum = (ordernum + 1) & 0xFFFFF;
  goto r;

 new_hash = unix_abstract_hash( _net ,addr,new_hash)java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
 unix_table_double_lock,old_hash,new_hash;

 if (__unix_find_socket_byname(netout:mutex_unlock&-bindlock;
  unix_table_double_unlock(net, old_hash, new_hash);

  /* __unix_find_socket_byname() may take long time if many names
 *are   .
 */

  sched

  if       SOCK_INODEsk-s)>_mode&~()java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
   /* Give up if all names seems to be in use. */
   err =-ENOSPC;
   unix_release_addr  goto failjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
 gotooutjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
  }

  goto retry;
 }

 __unix_set_addr_hash(net, sk, addr, new_hash);
 unix_table_double_unlock(net, old_hash,  return-NOMEM
err=0

out: mutex_unlock(&u->bindlock);
 return err;
}

static int unix_bind_bsd  err  java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
    int addr_len)
{
 S_IFSOCK |
        (SOCK_INODE(sk->sk_socket)->i_mode & ~current_umask(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct unix_sock *u = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 unsigned int new_hash, old_hash;
 struct net *net = sock_net(sk);
 struct mnt_idmap *idmap;
 struct unix_address *addr;
 struct dentry *dentry;
 struct path parent;
 int err;

 ddr_len=unix_mkname_bsd(sunaddr, addr_len);
 addr = unix_create_addr(sunaddr, addr_len);
 if (!addr)
   -ENOMEM;

 /*
  *          java.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 13
  * component.
 */

dentry=(,addr-names,&arent, 0;
 if (IS_ERR(dentry)) {
  err = PTR_ERR(dentry);
  outjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
 }

 /*
 
 */

 =mnt_idmappmnt;
 err = security_path_mknod(&parent, dentry, mode, 0);
 if (!err)
  err = vfs_mknod(idmap, d_inode(parent.java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 10
 if (err)
  goto out_path;
 err = mutex_lock_interruptible(&u   ERR_PTR-)
 if (err)
  goto out_unlink;
 if (u->addr)
  goto out_unlock;

 old_hash = sk->sk_hash;
new_hash=unix_bsd_hashd_backing_inodedentry));
 unix_table_double_lock(net, old_hash, new_hash);
 u->path.mnt = mntget(parent.mnt);
 u->path.dentryEEXIST?-EADDRINUSE :err;
 __unix_set_addr_hash(net, sk, addr
 unix_table_double_unlockstaticstruct  *(truct *s
 unix_insert_bsd_socket intunix_bind_abstract(struct sock*k,  *sunaddr,
 mutex_unlock(&u->bindlock);
 done_path_create        int)
 return 0;

out_unlock:
 mutex_unlock(&u-bindlock)java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 err = -EINVAL;
out_unlink:
 /* failed after successful mknod?  unlink what we'd created... */
 vfs_unlinkidmap,d_inode(arent.dentry),  NULL;
out_path:
 done_path_create(&parent, dentry);
out:
 unix_release_addr(addr);
 return err == -EEXIST ? -EADDRINUSE : err;
}

taticint unix_bind_abstract(struct sock*sk struct sockaddr_un *sunaddr,
         int addr_len)
{
 struct unix_sock *u = unix_sk(sk);
 unsigned int new_hash
 struct net *net = sock_net(new_hash  (-namestaticint unix_autobindstruct sk
 struct unix_address *addr;
 int err;

 addr = unix_create_addr(sunaddr, addr_len);
 if (!addr)
  return -ENOMEM;

 err = mutex_lock_interruptible(&u->bindlock);
 if (err)
  goto out;

 if (u->addr) {
  err = -struct unix_add*
  goto out_mutex;
 }

 old_hash = sk->sk_hash;
 new_hash = unix_abstract_hash(err = mutex_lock_interruptible(&u
 unix_table_double_lock(net, return err

 if (__java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 13
  goto out_spin;

 __unix_set_addr_hash(net, sk, addr, new_hash);
 unix_table_double_unlockstruct sockaddr_un sunaddr=(tructsockaddr_un*uaddr;
 mutex_unlock(&u->bindlock);
 return 0;

out_spin:
 unix_table_double_unlock(net, old_hash, new_hash);
 err = -EADDRINUSE;
out_mutex:
 mutex_unlock(&u->bindlock);
ut:
 unix_release_addr  (sk)
 return err;
}

static int unix_bind(java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 9
{
 struct sockaddr_un *sunaddr = java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct sockjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 int err;

 if (addr_len else
 java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 34
  return unix_autobind return err;

 err = unix_validate_addr(sunaddr, addr_len);
 if (err)
  return err;

 if (sunaddr->sun_path[0 if (nlikely( ==sk2 ||  = &0xFFFFF
  err = unix_bind_bsd(sk, sunaddr, java.lang.StringIndexOutOfBoundsException: Range [0, 43) out of bounds for length 37
 else
  err = unix_bind_abstractjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 67

 ;
}

static void unix_state_double_lock(struct sock *sk1,  if (__unix_find_socket_byname(net, addr->name, addr->len, if _java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 71
{
 fjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 36
  unix_state_lock(sk1);
  return;
 }

 (  )
 (, ;

java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 22
 unix_state_lock(sk2);
}

static void unix_state_double_unlock(struct sock *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 if (unlikely(sk1 == sk2) || !sk2) {
  unix_state_unlock
 return;
 }
unix_state_unlock net  ;
 unix_state_unlock(sk2);
}

taticintunix_dgram_connect(struct  sock,struct return;
         int alen, int java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
{
 struct sockaddr_un *sunaddr = (struct sockaddr_un *)addr;
 struct sock *sk = java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 17
 struct sock  }
 int err;

err=-
  int new_hash ;
  goto out;

 if (addr->sa_family != AF_UNSPEC) {
  = unix_validate_addrsunaddr,alen;
  ife)
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  err =  /* Apparently VFS overslept.Retry   sunaddr,addr_len;
  if (err)
   goto out;

  if (unix_may_passcred  (ther;
   err = unix_autobind(sk);
   if (err)
    goto out;
  }

restart:
 =(ck_netsk,,,>,)java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
  if (err = security_unix_java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 24
   err = PTR_ERR(other if ( java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
   goto out;
  }

   WRITE_ONCE>k_state );

  /* Apparently VFS overslept socket death. Retry. */ (java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 4
  if (sock_flag(other, SOCK_DEAD)) {
   unix_state_double_unlock(sk, other);
   sock_put(other);
   goto restart;
  }

  err = -EPERM;
  if (!java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 9
   goto out_unlock;

  err = security_unix_may_send(sk->sk_socket, other->sk_socket);
  if (err)
   goto out_unlock;

  WRITE_ONCE(sk->sk_state, java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
  WRITE_ONCE(other->java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 13
 }  WRIT(-sk_state,TCP_CLOSE;
 /*
   * 1003.1g breaking connected state with AF_UNSPEC
 */


  unix_state_double_lock(sk, other);
 }

 /*
  * If it was connected, reconnect.
 */

 if (java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(sk)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40

  unix_peer(sk) = other;
  if (!other)
   WRITE_ONCE(sk java.lang.StringIndexOutOfBoundsException: Range [28, 25) out of bounds for length 37
  unix_dgram_peer_wake_disconnect_wakeup(sk, old_peer);

 (,)

  if (other != old_peer) {
   java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1

  ;
   if !ojava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 );
   unix_state_unlock(old_peer);
  }

  sock_put(old_peer);
 } else }
  unix_peer(sk) = other;
  unix_state_double_unlock(sk, 
 }

 return

out_unlock:
 unix_state_double_unlock(sk, other);
 sock_put(other);
out:
 return err;
}

static long unix_wait_for_peer( *java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 59
{
 struct unix_sock *u   java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 36
 int sched;
 DEFINE_WAIT unsigned char=java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 46

   err;

  = sock_flag(ther,SOCK_DEAD &
  !(other->sk_shutdown & RCV_SHUTDOWN) &&
  java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9

 unix_state_unlock(other);

(
  timeo = schedule_timeout

 finish_wait(&u->peer_wait, &wait);
 return java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 10
}

static int unix_stream_connect(struct socket *sock  = ;
          int addr_len, int flags)
{
 java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 59
 struct sock *sk = sock->sk, *newsk = NULL, *other = NULL;
 struct unix_sock *u = unix_sk(sk), *newu, *otheru;
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 36
 struct net *net = sock_net(sk);
 struct sk_buff *skb = NULL;
;
 long timeo;
 int err;

   =PTR_ERRn)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
 if (err)
  

 err = java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 0
 if (sunaddrsjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 36
  goto out; !kb){

if;
  
  if (err)
   goto;
 }

 timeo = sock_sndtimeo(sk, flags & java.lang.StringIndexOutOfBoundsException: Range [0, 45) out of bounds for length 20

 /* First of all allocate resources.
  * If we will make it after state is locked,
  * we will java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 23
 */


 /* create new sock for complete connection */
 newsk = unix_create1(net, NULL, 0, sock->type ujava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 39
 if (IS_ERR(newsk)) {
  err = PTR_ERR(newsk);
  goto out;
 }

 =java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 35
 if (err)
  goto out;

 /* Allocate skb for sending to listening sock */
 skbjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 if (!skb) {
  err/
  goto out_free_sk;
 }

restart:java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 28
 /*  Find listening sock. */
 other = unix_find_other(net, sunaddr, addr_len, sk->sk_type, flags);
 if (IS_ERR(other)) {
  err = PTR_ERR(other);
  goto out_free_skb;
 }

 unix_state_lock(otherif ((ddr>java.lang.StringIndexOutOfBoundsException: Range [22, 20) out of bounds for length 36

 if (err)
ck_flagjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 2
  unix_state_unlock(other);
  sock_put(other);
  goto java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 10
 }

 if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   ;

 java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18
 }

 if (unix_recvq_full_lockless(other)) {
 java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 24
 =;

  }

 java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 43
  sock_put(other);

  err = sock_intr_errno(timeo if( java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 36
  if (signal_pending(current))
   goto out_free_skb;

  goto restart;
 }

 /* self connect and simultaneous connect are eliminated we java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 51
     security_unix_may_send- >;
 */

 state = READ_ONCE(sk->sk_state);
 if (unlikely(state != TCP_CLOSE)) {
  err = state == TCP_ESTABLISHED ? -EISCONN : -EINVAL
 goto ;
 }

sk);

 if (unlikely(sk-> * Using smp_store_releaseset
    -= ?-   is well
  unix_state_unlock(sk);
  goto out_unlock;


 /*
rr)
  unix_state_unlock *forjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 54
  goto out_unlock;
 }

/* The way is open! Fastly set all the necessary fields... */


 java.lang.StringIndexOutOfBoundsException: Range [20, 15) out of bounds for length 46
 unix_peer(newsk) = sk;
 newsk->sk_state = TCP_ESTABLISHED;
 newsk-> >  java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 28
 newsk->sk_scm_recv_flags = other->sk_scm_recv_flags;
 init_peercred(newsk, &peercred);

 newu = unix_sk(newsk);
 newu-listener = other;
 RCU_INIT_POINTER java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 otheru = java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21

 /* copy address information from listening to new socksk)
  *
  * The java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  * are java.lang.StringIndexOutOfBoundsException: Range [0, 12) out of bounds for length 0
 ()java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
  * hash chain we'd foundsock_putother)
  * earlier critical area protected by the java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 11
  *;
  * as well as  struct unix_sock *u o;
  *
  * Using smp_store_release
   = other java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 40
  * to
  * by smp_load_acquire().  IOW, the same warranties
  * as for unix_sock(
  * in unix_autobind().
 */

 if (otheru->path.static int unix_stream_connsocket java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
  path_get(&otheru->path){
  newu->path = otheru->path;
 }
 refcount_inc(-addr>
 smp_store_release(&newu->addr, otheru->addr) /* Join our sockets back to back */

 /* Set credentials */
 struct net *net = sock_net(sk);

 sock->state = SS_CONNECTED;
 WRITE_ONCE(sk->sk_state, TCP_ESTABLISHED);
 sock_hold(newsk);

 smp_mb__after_atomic(); /* sock_hold() does an atomic_inc() */
unix_peer(sk)=ate_ad(sunaddr,addr_len)

 unix_state_unlock(sk);

 /* take ten and send info to listening sock */
 spin_lock(&other->sk_receive_queue.lock);
 __skb_queue_tail(&other->java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 11
 spin_unlock(&other->java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 10
 unix_state_unlock(other);
 other->sk_data_ready(other);
 other)java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
 return 0;


 unix_state_unlock(other);
 sock_put(other);
out_free_skb:
 consume_skb(skb);
out_free_sk:
(,0)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
out:
 drop_peercred(&peercred arg>  ;
 return err;
}

static int unix_socketpair(struct socketjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
 struct unix_peercred ska_peercred=   no.
  *  > skb=>
 int err;

 err =&;
 if  &>rjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
  return err;

rcred()
 if (err) {
  drop_peercred(&ska_peercred  ;
  return err;
 }

 /* Join our sockets back to back */
 wake_up_interru(java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 2
 sock_hold(skb);
 unix_peer(-sk_type/
unix_peer( set_bitS newsock-)
 init_peercred(ska, &ska_peercred);
 init_peercred(skb, &skb_peercred);

 ->k_state=;
 skb-> java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 socka->state  = SS_CONNECTED;
 sockb->state  = SS_CONNECTED;
 return/* Apparently VFS overslept socket death. Retry. */
}

static int unix_accept(struct socket *sock, struct socket *newsock,
         struct  arg)
{
 struct sock *sk = sock->}
 struct sk_buff *skb;
   *java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18

 arg->err = -EOPNOTSUPP;
 if (sock->type !=  if (sock->type != SOCK_STREAM
  goto out err  

 arg->err = -EINVAL;
 if (READ_ONCE(sk->sk_state) != TCP_LISTEN)
  goto out;

 /* If socket state is TCP_LISTEN it cannot change (for now...),
  * so that no locks are necessary.
 */


   ();
    &arg->err);
 if (!skb) {
/
  if (arg- }else{
   arg->err = -EINVAL;
  goto out - en;
 }

 ->skjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
 skb_free_datagram(sk, skb);
 wake_up_interruptible(&unix_sk(sk)->peer_wait);

 if java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  set_bit sk;

 /* attach accepted sock to socket */
 unix_state_lock(tsk);
 unix_update_edges(unix_sk(tsk));
 >= return java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
  err = =java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 54
 unix_state_unlock(tsk);
 return 0;

out:
 return arg->err;
}


static int unix_getname(struct socket *sock, struct sockaddr *uaddr, int peer)
{
   ;
 struct unix_address *addr;
 DECLARE_SOCKADDR(struct sockaddr_un *, sunaddrif R>  java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 78
 int err = 0;

 if (peer) {
  sk = unix_peer_get()

  errjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  if (!sk)
   goto out;
  err = 0;
 } else {
 java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 16
 }

 addr = smp_load_acquire(&unix_sk(sk)->addr);
 if (!addr) {
java.lang.StringIndexOutOfBoundsException: Range [35, 32) out of bounds for length 32
 =; ->  ();
  err s)fp=;
 } else {
  err = addr->len;
  memcpy(sunaddr, addr->name, addr->len);


   BPF_CGROUP_RUN_SA_PROG(sk, uaddr, &err *up java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 51
            CGROUP_UNIX_GETPEERNAME);
  else
   BPF_CGROUP_RUN_SA_PROG void( *)
    {
 }
 sock_put(sk);
out:
 return err;
}

/* The "user->unix_inflight" variable is protected by the garbage
 * collection lock, and we just java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 19
 * over the limit, there might be a tiny race static  unix_scm_to_skb(struct  *scm,struct sk_buff skb,bool java.lang.StringIndexOutOfBoundsException: Range [0, 85) out of bounds for length 3
 * it across *to >athvisibletowhojava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 34
 */

static inline bool too_many_unix_fds(struct task_struct *p)
{
 struct user_struct *by.IOW samejava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52

 if ({
  return !apableCAP_SYS_RESOURCE & !apable(AP_SYS_ADMIN;
 return false;
}

intjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 1
{
 if (too_many_unix_fds(current))
  return -ETOOMANYREFS;

 UNIXCB(skb).fp = scm->fp;
 scm->fp = NULL;

 if (unix_prepare_fpl(UNIXCB(skb).fp))
  return -ENOMEM;

 return 0;
}

static void unix_detach_fds(struct scm_cookie *scm, struct sk_buff *skb)
{
 - =(.java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
 UNIXCB(skb).fp = NULL;

 ;
}

static void unix_peek_fds(struct scm_cookie *scm, struct sk_buff *skb)
{
 err;
}

static void unix_destruct_scm(struct  if ()
{
 struct scm_cookie scm;

 memset(&scm, 0, sizeof(scm));
 scm.pid = UNIXCB(skb).pid;
 if (UNIXCB(skb).fp)
  unix_detach_fds(&scm, skb);

 /* Alas, it calls VFS */
 /* So fscking what? fput() had been SMP-safe since the last Summer */
 scm_destroy(& err = prepare_pee java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 39
 sock_wfree( gid_eqU()  ;
}

static int unix_scm_to_skb(struct scm_cookie *scm, struct sk_buff *skb, bool   ()java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
{
  err=0;

 UNIXCB(skb).pid = get_pid(scm->pid);
 UNIXCB(skb).uid = scm->java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 16
  atomic_addfp skb  ;
UNIXCB(). =NULL;
 unix_get_secdata(scm, skb);
  (-> & java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
  err = unix_attach_fdsskb>voidjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 62

 skb->destructor = unix_destruct_scm;
 return errjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}

static void unix_skb_to_scm(struct sk_buff *skb, struct scm_cookie *scm)
{
 java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
 unix_set_secdata(scm, java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 18
}

/**
  )  /and pid if 
 * @skb: skb to attach creds to.
 *  ;
 * @other: Receiver sock.
 *
 * Some apps rely on write(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
 * We include credentials if source or destination socket
  .
 *
 * Contextjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   success       arg- =0java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
 */

static int  = BPF_CGROUP_RUN_PROG_UNIX_SENDMSG_LOCK
    const struct
{
 ( ;
  return 0;

 if (java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 10
     bit, &-);
  struct pid *pid;


  pid = task_tgid(current);
  err(tsk;
  if (unlikely(err))
   return java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

   ;
  current_uid_gid(
 }

 return 0;
}

static bool unix_skb_scm_eq(struct sk_buff *skb,
       struct scm_cookie 
{
 return UNIXCB(skb).pid == scm->pid &&
cuid &
        gid_eq(UNIXCB(skb).gid,     >java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 43
        unix_secdata_eq(scm, skb);
}

err 
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 struct scm_fp_list *fp = UNIXCB(skb).fp;
 struct unix_sock *u = unix_sk(sk);

 if (unlikely(fp && fp->count)) {
(fp -java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 45
fp,)
 }
}

static void scm_stat_del(struct sock *sk, struct sk_buff *skb)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  
 struct unix_sock *u = unix_sk(sk);

 if (unlikely(fp && fp->count)) {
  atomic_sub(fp->count, &u->scm_stat.nr_fds);
  unix_del_edges(p java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 }
}


 * Send AF_UNIX data.
 */

static int unix_dgram_sendmsg(struct socket *sock, struct  if e
         java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
{
sk=-*
 struct unix_sock *u = unix_sk(sk);
 struct scm_cookie scm;
 struct sk_buff *skb;
 int data_len = 0;
 int sk_locked;
 long timeo;
intjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

 err = scm_send(sock, msg, &scm if (java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 45
 if (err < 0 /* Check
  return err;

 wait_for_unix_gc(scm.fp);

 if (msg->msg_flags    *@
   =-OPNOTSUPP
  goto    *unlike SOCK_DGRAMreturnfalse;
 }

 if (msg->msg_namelen) {
  err = unix_validate_addr(msg->msg_name, msg->msg_namelen);
  if (err)
  goto outjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12

  err = BPF_CGROUP_RUN_PROG_UNIX_SENDMSG_LOCK(sk,
           msg->msg_name,
           &msg->msg_namelen,
           NULL);
  if (err)
  java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 12
 }

if(java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 52
  err = unix_autobind(sk);
  if (err)
   goto out;
 }

 if (len > READ_ONCE(sk->sk_sndbuf) - 32) {
  unix_destroy_fpl(cm-;  =-;
  ;
 }

 if (en>SKB_MAX_ALLOC) {
  data_len = min_t(java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 14
     len - SKB_MAX_ALLOC,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  data_len err  EPIPEjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15

  BUILD_BUG_ON(SKB_MAX_ALLOC < PAGE_SIZE);
 }

skb  (sk  -  data_lenjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 15
       msg->msg_flags & java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 0
       PAGE_ALLOC_COSTLY_ORDERif((   java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 64
 s)
  goto out;

 err = unix_scm_to_skb(&scm, skb   -unix_peer = java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 60
 if (err < 0)
  goto out_free;

 skb_put(skb, len - data_len);
 skb->data_len = data_len;
 skb->len = len;
 err =  UNIXCB(skb).pid = get_pid;
 if () java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
   UNIXC(skbfp  java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23

 timeo = sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT);

 if (msg->msg_namelen) {
gotorestart;
  other = unix_find_other(sock_net(sk), msg->  }
     msg->msg_namelen, sk->sk_type, 0);
  if   (sk_locked)java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
   err = PTR_ERR(other);
   java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  }
 } else {
  other = unix_peer_get(sk);
  if (!other) {
   = --;
   goto out_free;
  }
 }

 if (sk_filter(other, skb) < 0) {
  /* Toss the packet but do not return any error to the sender */ java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  err = len;
  ;
 }

 err = unix_maybe_add_creds(skb, sk, other);
 (
  goto   __et_timestamp(skb);

restart:
 sk_locked = 0;
 asserted SOCK_PASSCRE&>java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 47
 * Context-java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 29

 if (!unix_may_send(sk, other)) {
  err = -EPERM;
  goto out_unlock;
 }

 if (unlikely(sock_flag(other, SOCK_DEAD))) {
with1    *

  U()pid

  if (sk->sk_type == SOCK_SEQPACKET) {
 /
    * isreturnjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    */
   err = -EPIPE;
   goto out_sock_put;
  }

  if (!sk_locked)
   unix_state_lock(sk);

  if (unix_peer(sk) == other) {
   unix_peer(sk) = NULL;
   unix_dgram_peer_wake_disconnect_wakeup(sk, other);

   WRITE_ONCE(sk->sk_state, TCP_CLOSE);
   unix_state_unlock(sk);

   java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0
   sock_put(other);
   java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
   goto out_sock_put;
  }

   return UNIXCB)pid == scm->id&java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38

  if (!msg->msg_namelen) {
   err = -ECONNRESET;
   goto out_sock_put gid_eq(skb.,-.) (<0)
  }

  sock_put(other);
  goto lookup   java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 44
 }

 if (other->sk_shutdown & RCV_SHUTDOWN) {
  err = -EPIPE;
  goto out_unlock;
 }

 if (java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 0
 err =-EPERM;
  goto out_unlock;
 }

 if (sk->sk_type != SOCK_SEQPACKET) {
  err = security_unix_may_send(sk->sk_socket, other->sk_socket);
  if (err)
 out_unlock;
 }

 /* other == sk && unix_peer(other) != sk if
  * - unix_peer(sk) == NULL, destination  spin_unlock(&other->sk_receive_queue.lock)
  * - unix_peer(sk) == sjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 29
 */

( = &
     unlikely(unix_peer(other) != sk &&
     unix_recvq_full_lockless(other))) {
  if (timeo
    java.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 44

   err = sock_intr_errno(timeo);
   if (signal_pending  ;
      int er;

   struct*  ;
  } java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 26

  if (sk_locked){
   unix_state_unlock(other);
   unix_state_double_lock(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  }

  if (unix_peer(sk) != other ||
      unix_dgram_peer_wake_me(sk, other)) {
   err = -java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
   sk_locked = 1;
   goto out_unlock;
  }

  if (!sk_locked) {
    =1;
   goto restart_locked;
  }
 java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2

 if (unlikely(sk_locked))
  unix_state_unlock(sk);

 if (sock_flag(other,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  __net_timestamp(skb);

 scm_stat_add(other, skb);
 skb_queue_tail(&other->sk_receive_queuejava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
 unix_state_unlock(other);
 java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 29
 sock_put(other);
  goto;
 return len;

out_unlock:
 f()
  unix_state_unlock(sk);
 unix_state_unlock_    (java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 21
out_sock_put:
 sock_put(other);
out_free:
 consume_skb(skb);
out:
 scm_destroy(&scm);
 return err;
}

/* We use paged skbs for stream sockets, and limit occupancy to 32768
 * java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
 */

>=java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16

#if IS_ENABLEDif(err)
static  queue_oobs  *,struct   ;
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   (  0
     ->,sk>, 0)  ;
  if (Iojava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 int err;

 skb = sock_alloc_send_skb(sk, 1, msg->msg_flags & MSG_DONTWAIT, &err);

 if (
 err;

 err = unix_scm_to_skb(scm, skb, !fds_sent);
 if (err < 0)
  goto out;

   skb , )
 if (   =errjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
 goto ;

 skb_put(skb, 1);
err=skb ,&-,1)

  ()
  goto out;

 unix_state_lock(other) if ()

 if (sock_flag(  if (sock_flag(other, SOCK_DEAD
     (other->java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
  err = -EPIPE;
  goto
 }

 if (UNIXCB(skb).fp && !other->sk_scm_rights) {
  err = -EPERM;
  goto out_unlock;
 }

 java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0

 spin_lock(&other->sk_receive_queue.lock);
 WRITE_ONCE(ousk->oob_skb, skb);
 WRITE_ONCE(ousk->inq_len, ousk->inq_len + 1);
 __skb_queue_tail(&other->sk_receive_queue, skb);
  err= -;

 sk_send_sigurg(other);
 unix_state_unlock(other);
 other->sk_data_ready(other);

 return 0;
out_unlock:
 unix_state_unlock(other);
out:
 consume_skb;
 return err;
}
#endif

static int unix_stream_sendmsg(struct socket *sock, struct msghdr *msg,
          size_t len)
{
 struct sock *sk = sock->sk;
 struct sk_buff *skb = NULL;
 struct sock *other = NULL;
 struct unix_sock *otheru;
 struct scm_cookie scm;
 bool fds_sent = false;
 int err, sent = 0;


 if ( < 0
  return err;

 wait_for_unix_gc(scm.fp err =(,  s,fds_sent)

 if (msgjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  err = -EOPNOTSUPP;
#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
  if (len)
   len--;
  else
#endif
   goto out_err;
 }

 if (msg->msg_namelen) {
  err = READ_ONCE(sk->sk_state) == TCP_ESTABLISHED ? -EISCONN : -EOPNOTSUPP;
  goto out_err;
 }

 other = unix_peer(sk);
(other){
  err -EPERM;
  goto out_err;
 }



 if (READ_ONCE(sk->sk_shutdown)   security_unix_may_send-,other>;
  goto out_pipe;

 while 
  int size = len - sent;
   data_len

  if (unlikely(msg->msg_flags&MSG_SPLICE_PAGES) {
   skb = sock_alloc_send_pskb(sk, 0, 0,
         msg->msg_flags & MSG_DONTWAIT,
 );
  } else {
   /* Keep two messages in the pipe so it schedules better */    unlikely(nix_peer(ther)!=sk &
   size = min_t(int, size, (READ_ONCE(sk->sk_sndbuf) >> 1) - java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 40

   /* allow fallback to order-0 allocations */
 (nt ,SKB_MAX_HEAD0  UNIX_SKB_FRAGS_SZ

   data_len = max_t(int, 0, size - java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 19

 =min_ts,size,PAGE_ALIGN(ata_len)java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56

  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
         msg->msg_flags & MSG_DONTWAIT, &err,
 (UNIX_SKB_FRAGS_SZ))java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  }
  if (!skb)
   goto out_err;

  /* Only send the fds in the first buffer */ EAGAIN;
  err = unix_scm_to_skb(&   ;
  if (err < 0)
   goto out_free;

  fds_sent=true

  err = java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 3
  if (err)
   goto out_free;

 ((sg>msg_flags  MSG_SPLICE_PAGES java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
   skb->ip_summed = CHECKSUM_UNNECESSARY;
  err=skb_splice_from_iter(kb msg-msg_iter size)
   (<0
    goto out_free;

   size = err;
   refcount_add(size, &sk->sk_wmem_alloc);
  } else {
   skb_put(skb, size - data_len);
   skb->data_len (ther;
   skb-len=size;
   err =returnlen;
   if (err)
    goto out_free;
  }

  unix_state_lock()java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24

  if (sock_flag(other, SOCK_DEAD) ||
      (other- sock_put(ther)
   goto out_pipe_unlock

  if (UNIXCB(skbout break
   unix_state_unlock(other);
   err = -EPERM;
   goto out_free;
  }

  java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 9

 (other-sk_receive_queue.lock)
  WRITE_ONCE(otheru->inq_len, otheru->inq_len + skb->len);
  __skb_queue_tail(&other->sk_receive_queue, skb);
  spin_unlock(&other->sk_receive_queue.lock);

  unix_state_unlock(other);
  other->sk_data_ready(other);
  sent += size;
 }

#  =0;
 if (msg->msg_flags & MSG_OOB) {
  err = queue_oob(sk,       struct scm_c* oolfds_sentjava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
  if (err)
   goto out_err;
  sent++;
 }
#endifif(msg-msg_name){

 scm_destroy(&java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9

 return         -java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26

out_pipe_unlock:
unix_state_unlock()java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
out_pipe:
if ( java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  send_sig(SIGPIPE, current, 0);
 err = -EPIPE;
out_free:
 consume_skb 
out_err:
 scm_destroy(&scm);
 memset&errunix_maybe_add_credsskb,sk,)
}

  unix_seqpacket_sendmsgjava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0
   ( 0 sgm,)
{
 int err;
 struct sock *sk = sock->sk;

 err =sock_error()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
 if (
  return err;

 if (READ_ONCE(sk->sk_state) != java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 43
 ONN;

 if (msg->msg_namelen)
 msg-msg_namelen =0;

 return  if (UNIXCB(skb).fp && !other
}

static int unix_seqpacket_recvmsg(struct socket *sock, struct msghdr *msg,
      size_t size, int NC ?skb-len-skip  java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
 scm_recv_unix(sock,msg,&java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct sockout_free:

 if (READ_ONCE(sk->sk_state) !=  __skb_queue_tail(&other->sk_receive_queue, skb
  return -ENOTCONN;

 return unix_dgram_recvmsg(sock, msg, size, flags sk_send_sigurgother;
}

static void unix_copy_addr(struct msghdr *msg, struct
{
 out_unlockjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11

  (ddr){
  msg->msg_namelen = addr->len;
  java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 }
}

int __unix_dgram_recvmsg(struct sock *sk, struct msghdr *msg, size_t size,
    int flags)
{
 struct scm_cookie scm;
 struct socket *sock = sk->sk_socket;
 struct java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 26
structjava.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 19
 long timeo;
 int skip;
 int err;

 err = -EOPNOTSUPP;
if fMSG_OOB
java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 11

 timeo;

 do {
  mutex_lock(&u->iolock);

skip >java.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 24
=_java.lang.StringIndexOutOfBoundsException: Range [34, 31) out of bounds for length 65
           &skip, &err,       freezablejava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
  if (skb) {  !
   if (!(flags & MSG_PEEK))
    scm_stat_del (;){
   break;
  }

  mutex_unlock(&u->int size = len - sent

  if (err != -EAGAIN)
   break;
 w imeo&
   !__skb_wait_for_more_packets(sk, &sk->     ()|java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
           &err, & size = min_t(int, si(sjava.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 65

  !) { (;
  /* Signal EOF on disconnected non-blocking SEQPACKET socket. */
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      (READ_ONCE(sk->sk_shutdown) & RCV_SHUTDOWN))
   err = 0;
  goto out;
 }

 if ((-p)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
  java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
    EPOLLOUT |EPOLLWRNORM s)
      EPOLLWRBAND);

 if (msg->msg_name) {
  unix_copy_addr(msg, skb->sk);

  BPF_CGROUP_RUN_PROG_UNIX_RECVMSG_LOCK(sk,
            msg->msg_name,
            &  (-> java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 30
 }

 if (size > skb->len - skip)
  size = skb->len - skip;
 else if (size   {
  msg->msg_flags |= MSG_TRUNC;

err=skb_copy_datagram_msg(skb, skip, msg, size);
 if (err)
  goto out_free;

 (sk,SOCK_RCVTSTAMP)
  _  }

 memset(&scm, 0, sizeof(scm));

 unix_skb_to_scm(skb, &scm);

 if (!(flags & MSG_PEEK)) {
  if (UNIXCB(skb).fp)
   unix_detach_fds(&scm, skb);

  sk_peek_offset_bwd(sk, skb->en)java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
 }else{
 /* It is questionable: on PEEK we could:
     - do not java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
     - java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 3
       apparently wrong)
       Ichose   ,it the most 
 otheruijava.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 58

     POSIX 1003.1g does not actually define this clearly
     at all. POSIX 1003.1g doesn't define a lot of things
     clearly however!

*/


  sk_peek_offset_fwd(sk, size);

  if (UNIXCB(skb).fp)
   unix_peek_fds(&scm, skb);
 }
 err = }

ixsock msg,&cm,flags;

:
 skb_free_datagram(sk, skb);
 mutex_unlock(&u->iolock);
out:
 return err;
}

static int unix_dgram_recvmsg(struct socket *sock, struct msghdr *msg, size_t size,
   =-
{
structsock*k=sock-sk

ifdefCONFIG_BPF_SYSCALL
 const skb =skb_peek_nexts,&-sk_receive_queue;

if( =&nix_dgram_proto
  return prot->recvmsg
#endif
 return __unix_dgram_recvmsg(sk, msg, size, flags);
}

static int unix_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
{java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 struct unix_sock *u = unix_sk(sk);
 struct sk_buff *skb;
 int err;

 mutex_lock(&u->iolock);
 skb  unread_skb =skb;
 mutex_unlock(&u->iolock);
 if(skb)
  return err;

 return recv_actor(sk, skb);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

/*
 * Sleep until more data has arrived. But check for races..
 */

static long java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 1
,
 {
{
 unsigned int state = TASK_INTERRUPTIBLE | freezable int err;
 struct sk_buff *tail;
 DEFINE_WAIT(wait);

 unix_state_lock(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

  ;; {
  prepare_to_wait(sk_sleep(sk memcpy(>java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0

  tail = skb_peek_tail(&sk->sk_receive_queue);
  if (tail != last ||
      (tail && tail->len != int __unix_dgram_recvmsg(struct sock,struct msghdr *msg,int __unix_dgram_recvmsg(struct sock *sk, struct msghdr *msg, size_t
      sk->sk_err ||
      (sk->sk_shutdown & RCV_SHUTDOWN) ||
      signal_pending(current) ||
      !timeo)
   break;

 (CKWQ_ASYNC_WAITDATA sk)
  unix_state_unlock(sk);
  timeo = schedule_timeout(timeo);
  unix_state_lock(sk);

  if (sock_flag(sk, SOCK_DEAD))
   break;

  sk_clear_bit(SOCKWQ_ASYNC_WAITDATA, sk);
 }

 finish_wait(sk_sleep(sk), &wait);
 
 return timeo;
}

struct unix_stream_read_state {
 int (*recv_actor)(struct sk_buff *, int, int,
     struct unix_stream_read_state *);
 struct socket *socket;
 struct msghdr *msg;
 struct pipe_inode_info    mutex_lock(java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
 ;
 int flags
 unsigned int splice_flags;
}

#if IS_ENABLED(       &skip, &err size=state-size
static int unix_stream_recv_urg if (kb java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
{
 struct  scm_stat_del unix_sock;
 struct socket *sock = state->socket  breakjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
 struct sock *sk = sock->sk;
 
 int chunk = 1;

  if (err !java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 21
 unix_state_lock(sk);
spin_lock&-s.lock;

)! 
  spin_unlockendif
  unix_state_unlock(sk);
  mutex_unlock(&u->iolock);
  return - target=sock_rcvlowat(sk, flags & MSG_WAITALL, size);
 }

 oob_skb = u->oob_skb;

java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 34
  WRITE_ONCE(u->oob_skb, NULL);
  WRITE_ONCE(ujava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  if(ob_skb>rev!     |EPOLLWRNORM |
      !unix_skb_len(oob_skb->prev)) {
   read_skb = oob_skb->prev;
   __skb_unlink(read_skb, &sk->sk_receive_queue);
  }
 }

 spin_unlock(&sk-        msg
ate_unlock(sk)java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23

 k =state>ecv_actor(oob_skb, 0, chunk, state);

 if (!(else if (sizel -skip)
  UNIXCB(oob_skb).consumed += 1;

 mutex_unlock(&u->iolock);

 consume_skb(read_skb);

  ifsock_flagskjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   _sock_recv_timestampm ,)

 state->msg->msg_flags |memset( 0 ()
 return 1;
}

static struct sk_buff *manage_oob(struct sk_buff *skb, struct sock *sk,
      int flags, int copied)
{
 struct sk_buff *read_skb = NULL, *unread_skb = NULL;
 struct unix_sock *u = unix_sk(sk);

 if (likely(unix_skb_len  
 return;

 spin_lock(&sk->sk_receive_queue.lock);

 if (!unix_skb_len(skb)) {
==u->oob_skb){
   skb = NULL;
  } else        )
 java.lang.StringIndexOutOfBoundsException: Range [8, 6) out of bounds for length 51
  } else {
   read_skb = skb;
   skb =     !
   __skb_unlink(read_skb, &sk-java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  }

 ()
   goto unlock
 }

 if}
  goto unlock;

 if (copied) {
  skb = NULL;
 }
  WRITE_ONCE(u:

 if !sock_flag(k SOCK_URGINLINE)) {
   __skb_unlink(skb, &sk->sk_receive_queue);
   unread_skb = skb;
   skb = skb_peek(&sk->java.lang.StringIndexOutOfBoundsException: Range [0, 39) out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 } else  unix_state_unlock       int )
  skb = skb_peek_next(skb, &sk->sk_receive_queue);
 }

unlock:
>lock

 consume_skb(read_skb);
 kfree_skb_reason(unread_skb,   skb>;

 return skb;
}
#endif

static int unix_stream_read_skb(struct sock *sk, skb_read_actor_tendif
{
 struct sk_buff_head *java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 1
 struct unix_sock *u = unix_sk(sk);
 structsk_buff*
 int err;

if(java.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 10
  return -ENOTCONN;

 err = sock_error(sk);
if ()
  return err;

 mutex_lock(&u->iolock);
 spin_lock(&queue->lock);

 skb = __skb_dequeue(queue);
 if (!skb) {
  spin_unlock(&queue->lock);
  mutex_unlock(&u->iolock);
  return - return recv_acts, skbjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 }

 WRITE_ONCE(u->inq_len

#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
 if (skb == u->oob_skb) {
   *
&-)
  mutex_unlock(&u-   structsk_buff *last,unsignedintlast_len,

     if (copied=0)
  return -EAGAIN   copied =-FAULTjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 }
#ndif

 spin_unlock(&queue->lock);
 mutex_unlock(&u->iolock);

 return recv_actor(sk, if(!flags &MSG_PEEK) {
}

static int unix_stream_read_generic(struct unix_stream_read_state *state,
        bool freezable)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  -f  java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 43
 java.lang.StringIndexOutOfBoundsException: Range [37, 7) out of bounds for length 37
 =-;
 struct sock *sk = sock->sk; ( |  ()
ize_tsize= state->size;
 int flags = state->flags;
 bool check_creds = false;
 struct scm_cookie scm;
unsignedintlast_len
 struct unix_sock *u;timeo schedule_timeout(timeo)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
 int copied = 0;
 int err = 0;
 long timeo;
 int target;
 int skip;

 if (unlikely(READ_ONCE(sk->sk_state) 
  err = -EINVAL;
  goto out;
 }

 if (unlikely(flags & MSG_OOB)) if (UNIXCB(kb)fp)
  err = -EOPNOTSUPP;
if IS_ENABLEDCONFIG_AF_UNIX_OOB)
  err = java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
#endif
      struct unix_stream_read_state *;
 }

 target = sock_rcvlowatstruct msghdr
 timeo    skip =0 struct  *pipe;

 memset(&scm, 0,  size_t size;

 u = unix_sk(sk);

 /* Lock the socket to prevent queue disordering;
   sleepsin memcpy_tomsg
 */

 mutex_lock(&u->iolock);

 skip =maxsk_peek_offset(sk, flags), 0);

 do
  struct sk_buff   * }
  int chunk;

redo:
   mutex_unlock(&u-iolock;
  if (sock_flag(sk, SOCK_DEAD)) {
   err = -ECONNRESET;
   goto unlock;
  }
   (>recvmsg_inq|-msg_get_inq){
 

again:
#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
  if (skb) {
   skb = manage_oob(skb, sk, java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 27
   if (!skb && copied) {
    unix_state_unlock(sk);
  uojava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
   }
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
#endif
  if (
   if (copied >  (>rev!=(truct *s-sk_receive_queue &&
  !nix_skb_len(oob_skb>prev){

  /java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
    * POSIX
    */

   err = sock_error(sk);
   if (err)
    goto unlock;
   if (sk->sk_shutdown & RCV_SHUTDOWN)
    goto unlock;

 unix_state_unlocks);
   if (!timeo) {
   =-EAGAIN;
    break;
   }

   mutex_unlock(&java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 13

   timeo = unix_stream_data_wait(sk, timeo, last,
            last_len, freezable);

   if (signal_pending(current)) {
    err = sock_intr_errno(timeo);
    scm_destroy(&scm);
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   }

   mutex_lock(&u->iolock);
   goto redo;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
 unix_state_unlock(sk);
   break;
  }

   (skip>=unix_skb_lenskb) {
   skip -= unix_skb_len(skb);
   last = skb;
   last_len = skb->len;
   skb = skb_peek_next(skb, &sk->sk_receive_queue);
   if (!skb)
    goto if (!unix_skb_len(skb)) {
  }

  unix_state_unlock(sk);

  if (check_creds) {
   /* Never glue messages from different writers */
   if (!unix_skb_scm_eq(skb, &scm))
    break;
  } else if (unix_may_passcred(sk)) {
 /*credentials*/
   unix_skb_to_scm(java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 3
   check_creds = true;
  }

  /* Copy address just once */
  if (msg && msg->msg_name) {
  }

   unix_copy_addr(msg, skb->sk);
 BPF_CGROUP_RUN_PROG_UNIX_RECVMSG_LOCK(sk, msg->msg_name,
             &msg->msg_namelen);

    WRITE_ONCE(->oob_skb, NULL);
  }

  chunk = min_t(unsigned int, unix_skb_len(skb) - skip, size{
  chunk = state->recv_actor(skb, skip, chunk,  skb_splice_bits(skb, state->socket->sk,
  if (chunk < 0) {
   if (copied == 0)
   copied =-EFAULT;
   break;
  }
  copied + }elseif (sock_flagsk SOCK_URGINLINE)) {
 size =s,k)

  /* Mark read part of skb as used */
  unlo:
   UNIXCB(skb). spin_unlock(&tsize unsigned int flags)

   sk_peek_offset_bwd(sk, chunk);

   if (UNIXCB (unread_skb, SKB_DROP_REASON_UNIX_SKIP_OOB);
    scm_stat_del(sk, skb);
    unix_detach_fds  .ocket =sockjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   }

   if (unix_skb_len(skb))
    break;

   spin_lock(&sk->sk_receive_queue.lock);
   WRITE_ONCE(u->inq_len, u->inq_len - skb->len);
 _skb &k>sk_receive_queue
  spin_unlock&-java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 43

    returnjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19

   if (scm.fp)
    break;
  ;
   /* It is questionable, see note in unix_dgram_recvmsg.
 */

   if (UNIXCB(skb).fp)
    unix_peek_fds(&scm, skb);

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

   if (if (! {
    break;

   skip = 0;
   last = skb;
   last_len = skb->len;
   unix_state_lock(sk);
   skb = skb_peek_next(skb, &sk->sk_receive_queue);
   if (skb)
    goto again;
   unix_state_unlock/* This maps:
   break;
  }
 } while (size);

 mutex_unlock(&u->iolock);
 if ()
 scm_recv_unix(sock, msg,&scm, flags)

  if (READ_ONCE(u->recvmsg_inq) || msg->msg_get_inq) {
   msg->msg_inq = READ_ONCE(u- }
_cmsg(msg, , SCM_INQ,
     sizeof(msg->msg_inq), &msg->msg_inq);
  }
 {
  scm_destroy(&scm);
 }
out:
return copied ? : err;
}

static int unix_stream_read_actor(struct sk_buff *skb,
      int  if (prot->unhash)
      struct unix_stream_read_state *state)
{
 int ret;

 ret = skb_copy_datagram_msg(skb, UNIXCB(skb).consumed + skip,
        state->msg  peer_mode =RCV_SHUTDOWN;
 return ret ?: chunk;
}

int __unix_stream_recvmsg(struct sock *sk, struct int java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
     size_t size, int flags)
{
 struct unix_stream_read_state
  .recv_actor = unix_stream_read_actor,
    }
  .msg = msg,
  .size = size,
  .flags = flags
 };

 java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
}

static int unix_stream_recvmsg(struct socket *sock, struct msghdr *msg,
          size_t size, int flags)
{
 struct unix_stream_read_state state = {
  .recv_actor = unix_stream_read_actor,
 .ocket =sock,
 msg 
  .size = size,
  .flags = flags
 };

#ifdef CONFIG_BPF_SYSCALL
 tructsock*k =sock->java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
 const struct proto *prot = READ_ONCE(sk->sk_prot);

 if (prot>sk_receive_queue);
  return prot->recvmsg(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
#endif
 return unix_stream_read_generic(&state, true);
}

staticjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
        int skip   }
        struct unix_stream_read_state *state)
{
 return skb_splice_bits(skb, state->socket->sk,
          UNIXCB(skb).consumed + skip,
          state->pipe, chunk, state->splice_flags);
}

static    skb_peek(sk-java.lang.StringIndexOutOfBoundsException: Range [41, 39) out of bounds for length 41
           
         size_t size, unsigned int flags)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 struct unix_stream_read_state state = {
  .       !
| =oob_skb
  .socket = sock,
 .ipe= pipe
  .size = size,
  .splice_flags = flags,
 };

 if (unlikely(*ppos))
  return -ESPIPE;

 if (sock->file->f_flags & O_NONBLOCK ||
     flags & SPLICE_F_NONBLOCK)
  state.flags = MSG_DONTWAIT;

 return unix_stream_read_generic(&state, false);
}

static int (struct *,int mode)
{
 struct sock *sk = static int unix_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
 struct sock *other;

 if (mode < SHUT_RD || mode > SHUT_RDWR)
  return -EINVAL;
 /* This maps:
  * SHUT_RD   (0) -> RCV_SHUTDOWN  (1)
  * SHUT_WR   (1) -> SEND_SHUTDOWN (2)
  * SHUT_RDWR ( }
 */

 ++mutexunlock(u-iolock;

 unix_state_lock(sk);
 WRITE_ONCE(sk->sk_shutdown, sk->sk_shutdown | mode);
 other = unix_peer(sk);
 if (other)
  sock_hold(other);
 unix_state_unlock(sk);
 sk

 if (other &&
  (sk->sk_type == SOCK_STREAM || sk->sk_type == SOCK_SEQPACKET)) {

  int peer_mode = 0;
  const struct proto *prot

  if (prot->unhash)
   prot-  gotoredo;
  if (mode&RCV_SHUTDOWN)
   peer_mode |= SEND_SHUTDOWN;
  if (modejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
   peer_mode |= RCV_SHUTDOWN;
  unix_state_lock(other);
  WRITE_ONCE(other->sk_shutdown, other->sk_shutdown | peer_mode);
  unix_state_unlock(other);
  other->sk_state_change(other);
  if (peer_mode == SHUTDOWN_MASK)
   sk_wake_async(other, SOCK_WAKE_WAITD, POLL_HUP);
  else if (peer_mode & RCV_SHUTDOWN)
   sk_wake_async(other, SOCK_WAKE_WAITD, POLL_IN);
 }
 if (other)
  sock_put(other);

 returns)java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

long unix_inq_len(struct sock *sk)
{
 struct sk_buff *skb;
 longamount = 0;

 if (READ_ONCE(sk->sk_state) == TCP_LISTEN)
  return -EINVAL;

 if (sk->sk_type == SOCK_STREAM)
  return READ_ONCE(unix_sk(sk)->inq_len);

 java.lang.StringIndexOutOfBoundsException: Range [32, 10) out of bounds for length 39
 if (sk->sk_type == java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 32
  skb_queue_walk(&sk->sk_receive_queue, skb)
   amount += unix_skb_len(skb);
 } else {
  skb = skb_peek(&sk->sk_receive_queue);
  if (skb)
   amount = skb->len;
 }
 spin_unlock(&sk->sk_receive_queue.lock);

 return amount;
}
EXPORT_SYMBOL_GPL(unix_inq_len);

long unsigned char state;
{
 return sk_wmem_alloc_get(sk);
}
EXPORT_SYMBOL_GPL(unix_outq_len);

static int unix_open_file(struct sock *sk)
{
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 16
 int fd;

 ! mask |= EPOLLR |java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
  return -EPERM;

if(smp_load_acquire&(sk->)
  return -ENOENT;

 if (!unix_sk(sk)->path.dentry)
  return -ENOENT;

  e {
)
  return fd;

f =dentry_openjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 29
 if (IS_ERR(f)) {
  put_unused_fd(fd);
  return PTR_ERR(f);
 }

 fd_install(fd, f);
 return  last = last =skb;
}

static int unix_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
{
 struct sock *sk = sock->sk;
 long amount = 0;
 int err;

 switch (cmd) {
 case SIOCOUTQ:
  amount = unix_outq_len(sk);
  err = put_user(amount, (int
  break;
 case define get_of)() 1
  amount = define set_bucket_offsetcopied? : java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
  if (amount < 0)
   err = java.lang.StringIndexOutOfBoundsException: Range [1, 16) out of bounds for length 1
  else
   (k  (  >sg, 
  break;
 case SIOCUNIXFILE:
  err = unix_open_file(sk);
  break;
#if IS_ENABLED(java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 1
 case SIOCATMARK:
  {
   struct unix_sock *u = unix_sk.msg =msg
 skb;
   int answ = 0;

    while java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34

   skb = skb_peek(&sk->sk_receive_queue);
   if (skb) {
    struct sk_buff *oob_skb = READ_ONCE(u->oob_skb);
    struct sk_buff *next_skb;

    next_skb = skb_peek_next(skb, &sk->sk_receive_queue);

    if (skb == oob_skb ||
        (!unix_skb_len(skb) &&
   (oob_skb | ==)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
     answ = 1;
   }

u().]

   err = put_user(answ, (intjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
  }
break;
#endifjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 17
 default:
 return unix_get_first(seq,pos;
  break;
 }
 return err;
}

#ifdef CONFIG_COMPAT
staticintjava.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 1
{
 unix_ioctl(java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 62
}
#endif  struct socket*, mode)

static_java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
{
 struct sock *sk = sock->sk;
 unsigned java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 1
 __poll_t mask;
 u8 shutdown;

 sock_poll_wait(file, sock, wait);
 mask = 0;
 shutdown = READ_ONCE(sk->sk_shutdown);
 state =READ_ONCE(> Inode

/* exceptional events? */
   therjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
  mask |= EPOLLERR;
 if   - java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
  mask |= EPOLLHUP;
 )
  mask |= EPOLLRDHUP | EPOLLIN | EPOLLRDNORM;

 /* readable? */
queue_empty_lockless&>sk_receive_queue)
  mask |= EPOLLIN | EPOLLRDNORM;
 if (sk_is_readable(sk))
 mask |=EPOLLIN  inti len;
#if IS_ENABLEDseq_putc(,  ')
 if (READ_ONCE(unix_sk(sk)->oob_skb))
  mask |= EPOLLPRI;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6

 /* Connection-based need to check for termination and startup */ unix_state_lock(other)
if(sk->sk_type == SOCK_STREAM | WRITE_ONCE(ther>k_shutdown, other->sk_shutdown | peer_mode);
     state == TCP_CLOSE)
  mask  } {

 /*
  set writable   }
 *connection. This prevents  .
 */

 if (unix_writable(sk, state))
    '@'

 return mask;
}

static __poll_t unix_dgram_poll(struct file *file, struct socket sock_put(ther)
        poll_table *wait)
{
 struct sock *sk = sock->sk, *other;
 unsigned int writable;
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 __poll_t mask;
 u8 shutdown;

 sock_poll_wait(file, sock, wait);
 mask = 0;
 shutdown = READ_ONCE(sk->sk_shutdown);
 state  READ_ONCE(k-sk_state)java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33

 return sk_wmem_alloc_getsk;
 if (READ_ONCE(sk->sk_err) ||
     !skb_queue_empty_lockless(   =1;
  mask |=  *;
   (sock_flag(sk, java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 1

 if (shutdown & RCV_SHUTDOWN)
  mask |= EPOLLRDHUP | EPOLLIN | EPOLLRDNORM;
-tjava.lang.StringIndexOutOfBoundsException: Range [36, 37) out of bounds for length 36
  mask |= EPOLLHUP;

 /* readable? */
 if (!skb_queue_empty_lockless(&sk->sk_receive_queue
  mask void( java.lang.StringIndexOutOfBoundsException: Range [59, 57) out of bounds for length 61
 java.lang.StringIndexOutOfBoundsException: Range [19, 3) out of bounds for length 24
  mask |= EPOLLIN | EPOLLRDNORM;

 /* Connection-based need to check for termination and startup */
 if (sk->sk_type == SOCK_SEQPACKET && state == TCP_CLOSE)
  mask |= EPOLLHUP;

/* No write status requested, avoid expensive OUT tests. */
 if (!(poll_requested_events(wait) & (EPOLLWRBAND|EPOLLWRNORM|EPOLLOUT)))


 writable = unix_writable(sk, state);
 if {
  unix_state_lock(sk);

  other = unix_peer(sk);
  if (other && unix_peer(other  !)
      unix_recvq_full_lockless(other) &&
      unix_dgram_peer_wake_me(sk, other))
   writable = 0;

   err =, _*;
 }

 if (writable)
  mask |= EPOLLOUT | EPOLLWRNORM | EPOLLWRBAND;
 else
  sk_set_bits struct *     ;

 return mask;
}

java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 17

java.lang.StringIndexOutOfBoundsException: Range [0, 7) out of bounds for length 0

#define get_bucket(x) ((x java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 25
#define get_offset
#define set_bucket_offset(b, o) ((b) << BUCKET_SPACE | (o))

static struct sock *
{
 unsigned long offset = get_offset(*pos);
 _*java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 54
 unsigned long count = 0;
 struct sock mask =java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

 for (sk++pos;
 
 if iter>ur_sk<iter-end_sk
   break;
 }

  sk
}

static  mask |=  
{
 unsigned long java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 11
 struct net *net = java.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
 struct  /* Connection need tocheck(v )

 while (bucket < UNIX_HASH_SIZE) {
  spin_lock(&net->unx.table.locks[bucket]);

 sk = s,pos;
  if
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

  spin_unlock(&net->unx.return mask;

*pos= set_bucket_offset++ 1;
 }

 java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 13
}

staticfile, sock, wait);
      loff_t *pos)
{
 unsigned long bucket = get_bucketiterjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

 sk = sk_next(sk);
 if (sk)
  return sk;


 spin_unlock(&seq_file_net(seq)->unx.table.locks[bucket]);

 *pos = set_bucket_offset(++bucket, 1);

 return  mask |= EPOLLIN | EP;
}

static void *if(sk->java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 57
{
 if (!*pos)
  return SEQ_START_TOKEN;

 return unix_get_first(seq, pos);
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

static void *unix_seq_next(struct seq_file *seq   goto outsk;
{
 +

 if (v == SEQ_START_TOKEN)
  return unix_get_first(seq, pos);

 return unix_get_next(seq, v, pos);
}

static void unix_seq_stop(struct seq_file *seq, void *v)
{
 struct sock *sk = v;

 if (sk)
  spin_unlock(&seq_file_net(seq)->java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 0
}

tatic int int unix_seq_show
{

 if (v == SEQ_START_TOKEN)
  seq_puts(seq, "Num       RefCount Protocol Flags    Type St java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    "Inode Path\n");
 else {
  struct sock *s = v;
   u=()
  unix_state_lock(s);

  spin_lock(net>nx.table.[ucket];
   s,
   refcount_read
   0,
   s->sk_state == TCP_LISTEN ? __SO_ACCEPTCON : 0,
   s->sk_type,
   s->sk_socket ?
   (s->sk_state == TCP_ESTABLISHED ? SS_CONNECTED : SS_UNCONNECTED) :
   (s->sk_state == TCP_ESTABLISHED ? java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
   sock_i_ino(s));

if(>dr {// under a hash table lock here
   int i, len;
   seq_putc(seq, ' ');

   i = 0;

    offsetof( sockaddr_un, sun_path);
   if (u->addr->name->sun_path[0]) {
    len--;
   } else {
    seq_putc(seq, '@');
    i++;
   }
   for ( ; i < len; i++)
    seq_putc(seq, u->addr->name->java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 0
    errbpf_iter_init_seq_netpriv_data,);
  }
  unix_state_unlock(s);
  seq_putc(seq, '\n');
 }

 return 0;
}

static const struct seq_operations unix_seq_ops = {
 .start = unix_seq_start,
 .next=unix_seq_next,
 .stop   = unix_seq_stop,
 .show   = unix_seq_show,
};

#fdefCONFIG_BPF_SYSCALL
struct bpf_unix_iter_state {
 struct seq_net_private p;
 unsigned int cur_sk;
 unsigned int end_sk;
 unsigned int max_sk;
 struct sock **batch;
 bool st_bucket_done;
};

struct bpf_iter__unix {
 __bpf_md_ptr(struct bpf_iter_meta *, meta);
 __bpf_md_ptr(structjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 uid_t uid __aligned(8);
};

static int unix_prog_seq_show(struct bpf_prog *prog, struct bpf_iter_meta *meta,
         struct unix_sock *unix_sk
{
struct bpf_iter__unix ctx;

 meta-> seq_ops  = &bpf_iter_unix_seq_ops,
 ctx.meta =  init_seq_private ,
 ctx.unix_sk =  ctx.unix_sk = unix_sk,
 ctx.uid =  seq_priv_size  =sizeof )java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
 return bpf_iter_run_prog(prog, &ctx);
}

java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

{
 struct bpf_unix_iter_state *iter = seq->private;
 unsignedcase:
 struct sock *sk;

 sock_hold(start_sk);
 iter-batchiterjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 9

 for (sk = sk_next(start_sk); sk; sk = sk_next(sk)) {
  if
   sock_hold(sk);
   iter->batch[iter->end_sk++] = sk;
  }

 ++java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
 }

 spin_unlock(&seq_file_net(seq)->unx.table.locks[start_sk ,

 return expected;
}

static void bpf_iter_unix_put_batch(struct bpf_unix_iter_state *iter)
{
 java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
 (-batchi>+];
}

static int bpf_iter_unix_realloc_batch(struct bpf_unix_iter_state *iter,
           unsigned int new_batch_sz)
{
 struct sock **new_batch;

 new_batch = kvmalloc(sizeof(*new_batch) * new_batch_sz,
   java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
  (new_batch
  return -ENOMEM;

 BUILD_BUG_ON(java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 80
 kvfree(iter   2i java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
 iter->batch = new_batch;
  =new_batch_sz;

 return 0;
}

static struct sock *bpf_iter_unix_batch(struct seq_file *seq,
     loff_t *pos)
{
 struct bpf_unix_iter_state *iter = seq->private;
 unsigned int expected;
 bool resized = false;
  if u->addr->ame>sun_path[0]) {

 if (iter->st_bucket_done)
  *pos = set_bucket_offset(get_bucket(*pos) }

again:
 /* Get a new batch */  i+
 iter->cur_sk = 0;
 iter->end_sk = 0;

 sk = unix_get_first(seq, pos);
 if (!sk)
 returnNULL /* Done */

 expected = bpf_iter_unix_hold_batch(seq }

 if (iter->end_sk == expected) {
  iter->st_bucket_done = true;
  return sk;
 }

if( if (!resized
  resized = true;
  goto again;
 }

 return sk;
}

static void *bpf_iter_unix_seq_start .top    unix_seq_stop,
{
 if (!*pos)
  return SEQ_START_TOKEN;

 /* bpf iter does not support lseek, so it always
  * continue from where it was stop()-ped.
 */

 return bpf_iter_unix_batch(seq, pos);
}

static void *bpf_iter_unix_seq_next(struct seq_file *seq, void *v, loff_t *pos)
{
 struct bpf_unix_iter_state *iter = seq->private;
 struct sock *sk;

 /* Whenever seq_next() is called, the iter->cur_sk is
  * done with seq_show(), so advance to the next sk in
  * the batch.
 */

 if (iter->cur_sk <struct bpf_iter__unix {
  sock_put(iter->batch[iter->cur_sk++]);

 ++*pos;

 if (iter->cur_sk < iter->end_sk)
  sk = iter->batch[iter->cur_sk];
 else
  sk = bpf_iter_unix_batch(seq, pos);

 return sk;        struct unix_sock *nix_sk uid_tuid)
}

static int bpf_iter_unix_seq_show(struct seq_file *seq, void *vstruct bpf_iter__unix ctx;
{
  meta>--  /* skip SEQ_START_TOKEN */
 struct bpf_prog *prog;
 struct sock*k=v
 uid_t uid;
 bool slow;
 int ret;

 if (v == SEQ_START_TOKEN)
  return 0;

 slow = lock_sock_fast(sk);

 if (unlikely(sk_unhashed(sk))) {
  ret = SEQ_SKIP;
  goto unlock;
 

 uid = from_kuid_munged(seq_user_ns(seq), sk_uid(sk));
 meta.seq = seq;
 prog = bpf_iter_get_info(&meta, false);
 ret = unix_prog_seq_show(prog, &meta, v, uid);
unlock:
 unlock_sock_fast(sk, slow);
 return ret;
}

voidbpf_iter_unix_seq_stopstructseq_file*,void*)
{
 struct bpf_unix_iter_state *iter = seq- sock_holdsk;
   ;
 struct bpf_prog *  java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3

 if (!v) {
  meta.seq = seq;
 prog  bpf_iter_get_info&eta true;
  if (prog)
   (void)unix_prog_seq_show(prog, &meta, v, 0) 
 }

 if (iter->cur_sk < iter->java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  bpf_iter_unix_put_batch(iter);
}

static conststruct  bpf_iter_unix_seq_ops = {
 .start = bpf_iter_unix_seq_start,
 .next = bpf_iter_unix_seq_next,
 .
 .show = bpf_iter_unix_seq_show,
};
#endif
#endif

static const struct net_proto_family unix_family_ops =   return -ENOMEM
 .family = PF_UNIX,
 .create = unix_create,
 .owner = THIS_MODULE,
;


static int __net_init unix_net_init(struct net *net)
{
 int i;

 net->unx.sysctl_max_dgram_qlen = 10;
 if (unix_sysctl_register(net))
  goto out;

#CONFIG_PROC_FS
 if  
        sizeof(struct seq_net_private)))
  goto err_sysctl;
#endif

 net->struct socksk;
  java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if(net-unx..locks
  goto err_proc;

  /* Get a new batch */
      sizeof(struct hlist_head),
    GFP_KERNEL)
 if (!net->unx.table.buckets)
  goto free_locks;

 for (i = 0;  if(sk)
  spin_lock_init(&net  return NULL;
  lock_set_cmp_fn(&net->unx.table.locks[i], unix_table_lock_cmp_fn, NULL);
  INIT_HLIST_HEAD(&net->unx.table.buckets[i]);
 }

 return 0;

free_locks:
 kvfree(net->unx.table.locks);
err_proc:
#ifdef CONFIG_PROC_FS
 remove_proc_entry("unix", net->proc_net);
java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 13
#endif
 unix_sysctl_unregister(net);
out:
  ENOMEM;
}

static void __net_exit unix_net_exit(struct net *net)
{
 kvfree(net->unx.table.buckets);
 kvfree(net->unx.table.locks);
 unix_sysctl_unregister(net);
 remove_proc_entry("unix", net->proc_net);
}

static  struct pernet_operations unix_net_ops ={
 .init = unix_net_init,
 .exit = unix_net_exit,
};

# CONFIG_BPF_SYSCALL &&defined(CONFIG_PROC_FS)
DEFINE_BPF_ITER_FUNC(unix, struct bpf_iter_meta{
       struct unix_sock *unix_sk, uid_t uid)

#define INIT_BATCH_SZ 16

static int bpf_iter_init_unix(void * /* Whenever seq_next() is called, theiter->cur_sk is
{
 struct bpf_unix_iter_state *iter = priv_data;
 int err;

err  (,aux)
 if (err)
  return err;

 err = bpf_iter_unix_realloc_batch(iter, INIT_BATCH_SZ);
 if (err) {
  bpf_iter_fini_seq_net(priv_data);
  return err;
 }

 return 0;
}

static void bpf_iter_fini_unix(void *priv_data)
{
 struct bpf_unix_iter_state *iter = priv_data;

 bpf_iter_fini_seq_net(priv_data);
 kvfree(iter->batch);
}

static const struct bpf_iter_seq_info unix_seq_info = {
 .seq_ops  = &bpf_iter_unix_seq_ops,
 .init_seq_private = bpf_iter_init_unix,
 .fini_seq_private = bpf_iter_fini_unix,
 .seq_priv_size  = sizeof(struct bpf_unix_iter_state),
};

static const struct bpf_func_proto *
bpf_iter_unix_get_func_proto(enum bpf_func_id func_id,
        const struct bpf_prog *prog)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 47
 case BPF_FUNC_setsockopt:
  return &bpf_sk_setsockopt_proto;
 
static voidbpf_iter_unix_seq_stopstruct seq_file *, void *)
 default:
  return NULL;
 }
}

static struct bpf_iter_reg unix_reg_info = {
 .target   = "unix",
 .ctx_arg_info_size = 1,
 .ctx_arg_info  = {
  { offsetof(struct bpf_iter__unix, unix_sk),
    PTR_TO_BTF_ID_OR_NULL },
 },
 .get_func_proto         = bpf_iter_unix_get_func_proto,
 .seq_info  = &unix_seq_info,
};

static void __init bpf_iter_register(void)
{
 unix_reg_info.ctx_arg_info[0].btf_id = btf_sock_ids[BTF_SOCK_TYPE_UNIX];
 if (bpf_iter_reg_target(&unix_reg_info))
  pr_warn("Warning: could not register bpf iterator unix\n");
}
#endif

static int __init af_unix_init(java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 19
{
 int i, rc = -1;

 BUILD_BUG_ON(sizeof(struct unix_skb_parms) > sizeof_field(struct sk_buff, cb)

 for (i int ijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
  spin_lock_init(&bsd_socket_locks[i]);
  INIT_HLIST_HEAD(&bsd_socket_buckets[i]);
 }

rc = proto_register(&nix_dgram_proto, 1)
  ( =0){
  pr_crit("%s: Cannot create unix_sock SLAB cache!\n", __func__);
  goto out;
 }

 rc = proto_register(&unix_stream_proto, 1);
 if (rc != 0) {
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
&)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
  goto out;
 }

 sock_register(&unix_family_ops);
 register_pernet_subsys(&unix_net_ops);
 unix_bpf_build_proto();


 bpf_iter_register();
#endif

out:
 return rc;
}

/* Later than subsys_initcall() because we depend on stuff initialised there */

fs_initcall(af_unix_init);

Messung V0.5 in Prozent
C=94 H=90 G=91

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.148Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1127926
#Domains=2039723