aboutsummaryrefslogtreecommitdiffstats
path: root/security/pidentd/files/patch-ac
blob: a00d4a47009e8846bd0c7d43bc72892c3acc36bc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
*** src/kernel/freebsd.c.orig   Fri Oct 21 03:07:37 1994
--- src/kernel/freebsd.c    Tue Apr 11 18:17:25 1995
***************
*** 1,5 ****
  /*
! ** kernel/other.c Low level kernel access functions for FreeBSD 2.x
  **
  ** This program is in the public domain and may be used freely by anyone
  ** who wants to. 
--- 1,5 ----
  /*
! ** kernel/other.c Low level kernel access functions for FreeBSD 2.1
  **
  ** This program is in the public domain and may be used freely by anyone
  ** who wants to. 
***************
*** 77,82 ****
--- 77,83 ----
  static int nfile;
  
  static struct inpcb tcb;
+ static struct inpcb *dummy_tcb;
  
  int k_open()
  {
***************
*** 140,146 ****
      return NULL;
  
    
!   head = pcbp->inp_prev;
    do 
    {
      if ( pcbp->inp_faddr.s_addr == faddr->s_addr &&
--- 141,147 ----
      return NULL;
  
    
!   head = *(pcbp->inp_list.le_prev);
    do 
    {
      if ( pcbp->inp_faddr.s_addr == faddr->s_addr &&
***************
*** 148,155 ****
     pcbp->inp_fport        == fport &&
     pcbp->inp_lport        == lport )
         return pcbp->inp_socket;
!   } while (pcbp->inp_next != head &&
!      getbuf((long) pcbp->inp_next,
          pcbp,
          sizeof(struct inpcb),
          "tcblist"));
--- 149,156 ----
     pcbp->inp_fport        == fport &&
     pcbp->inp_lport        == lport )
         return pcbp->inp_socket;
!   } while (pcbp->inp_list.le_next != head &&
!      getbuf((long) pcbp->inp_list.le_next,
          pcbp,
          sizeof(struct inpcb),
          "tcblist"));
***************
*** 185,192 ****
    /* -------------------- TCP PCB LIST -------------------- */
    if (!getbuf(nl[N_TCB].n_value, &tcb, sizeof(tcb), "tcb"))
      return -1;
!   
!   tcb.inp_prev = (struct inpcb *) nl[N_TCB].n_value;
    sockp = getlist(&tcb, faddr, fport, laddr, lport);
   
    if (!sockp)
--- 186,193 ----
    /* -------------------- TCP PCB LIST -------------------- */
    if (!getbuf(nl[N_TCB].n_value, &tcb, sizeof(tcb), "tcb"))
      return -1;
!   dummy_tcb = ((struct inpcb *) nl[N_TCB].n_value);
!   tcb.inp_list.le_prev = &dummy_tcb;
    sockp = getlist(&tcb, faddr, fport, laddr, lport);
   
    if (!sockp)