From f87eb57fb15cb441d1273cbe31d4b3cec64e8451 Mon Sep 17 00:00:00 2001 From: "Andrey A. Chernov" Date: Tue, 11 Apr 1995 14:27:41 +0000 Subject: Fix for new inpcb style. Submitted by: tri@pooh.tky.hut.fi --- security/pidentd/files/patch-ac | 80 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 security/pidentd/files/patch-ac (limited to 'security/pidentd') diff --git a/security/pidentd/files/patch-ac b/security/pidentd/files/patch-ac new file mode 100644 index 000000000000..a00d4a47009e --- /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) -- cgit v1.2.3