diff options
Diffstat (limited to 'security/pidentd')
-rw-r--r-- | security/pidentd/files/patch-ac | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/security/pidentd/files/patch-ac b/security/pidentd/files/patch-ac new file mode 100644 index 0000000..a00d4a4 --- /dev/null +++ b/security/pidentd/files/patch-ac @@ -0,0 +1,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) |