Only in linux-2.4.21-99: .config Only in linux-2.4.21-99: .config.old Only in linux-2.4.21-99-Snare: Kerntypes diff -cr linux-2.4.21-99/Makefile linux-2.4.21-99-Snare/Makefile *** linux-2.4.21-99/Makefile Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/Makefile Wed Oct 20 19:18:17 2004 *************** *** 1,7 **** VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 21 ! EXTRAVERSION = -$(CONFIG_RELEASE)-$(CONFIG_CFGNAME) KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) --- 1,7 ---- VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 21 ! EXTRAVERSION = -$(CONFIG_RELEASE)-$(CONFIG_CFGNAME)snare KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) *************** *** 152,158 **** ABI =abi/abi.o RMGT =rmgt/rmgt.o LIBS =$(TOPDIR)/lib/lib.a ! SUBDIRS =kernel drivers mm fs net ipc lib abi sound crypto rmgt ifeq ($(CONFIG_KDB),y) CORE_FILES += kdb/kdb.o --- 152,159 ---- ABI =abi/abi.o RMGT =rmgt/rmgt.o LIBS =$(TOPDIR)/lib/lib.a ! AUDIT =audit/audit.o ! SUBDIRS =kernel drivers mm fs net ipc lib abi sound crypto rmgt audit ifeq ($(CONFIG_KDB),y) CORE_FILES += kdb/kdb.o *************** *** 311,317 **** export CPPFLAGS CFLAGS CFLAGS_KERNEL AFLAGS AFLAGS_KERNEL ! export NETWORKS CRYPTO DRIVERS LIBS HEAD LDFLAGS LINKFLAGS MAKEBOOT ASFLAGS .S.s: $(CPP) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -o $*.s $< --- 312,318 ---- export CPPFLAGS CFLAGS CFLAGS_KERNEL AFLAGS AFLAGS_KERNEL ! export NETWORKS CRYPTO DRIVERS LIBS HEAD LDFLAGS LINKFLAGS MAKEBOOT ASFLAGS AUDIT .S.s: $(CPP) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -o $*.s $< *************** *** 329,334 **** --- 330,336 ---- $(CORE_FILES) \ $(DRIVERS) \ $(NETWORKS) \ + $(AUDIT) \ $(CRYPTO) \ $(ABI) \ $(RMGT) \ Only in linux-2.4.21-99-Snare: README-Snare diff -cr linux-2.4.21-99/arch/alpha/config.in linux-2.4.21-99-Snare/arch/alpha/config.in *** linux-2.4.21-99/arch/alpha/config.in Wed Sep 24 06:48:00 2003 --- linux-2.4.21-99-Snare/arch/alpha/config.in Wed Oct 20 15:43:08 2004 *************** *** 284,289 **** --- 284,290 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/alpha/defconfig linux-2.4.21-99-Snare/arch/alpha/defconfig *** linux-2.4.21-99/arch/alpha/defconfig Wed Sep 24 06:48:00 2003 --- linux-2.4.21-99-Snare/arch/alpha/defconfig Wed Oct 20 15:43:11 2004 *************** *** 77,82 **** --- 77,83 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/arm/config.in linux-2.4.21-99-Snare/arch/arm/config.in *** linux-2.4.21-99/arch/arm/config.in Wed Sep 24 06:48:06 2003 --- linux-2.4.21-99-Snare/arch/arm/config.in Wed Oct 20 19:52:14 2004 *************** *** 424,429 **** --- 424,430 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/arm/defconfig linux-2.4.21-99-Snare/arch/arm/defconfig *** linux-2.4.21-99/arch/arm/defconfig Wed Sep 24 06:48:07 2003 --- linux-2.4.21-99-Snare/arch/arm/defconfig Wed Oct 20 19:51:53 2004 *************** *** 89,94 **** --- 89,95 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_NWFPE=y CONFIG_KCORE_ELF=y diff -cr linux-2.4.21-99/arch/cris/config.in linux-2.4.21-99-Snare/arch/cris/config.in *** linux-2.4.21-99/arch/cris/config.in Wed Sep 24 06:48:12 2003 --- linux-2.4.21-99-Snare/arch/cris/config.in Wed Oct 20 19:52:37 2004 *************** *** 26,31 **** --- 26,32 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/cris/defconfig linux-2.4.21-99-Snare/arch/cris/defconfig *** linux-2.4.21-99/arch/cris/defconfig Wed Sep 24 06:48:12 2003 --- linux-2.4.21-99-Snare/arch/cris/defconfig Wed Oct 20 19:52:59 2004 *************** *** 16,21 **** --- 16,22 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set # CONFIG_SYSCTL is not set CONFIG_BINFMT_ELF=y # CONFIG_ETRAX_KGDB is not set diff -cr linux-2.4.21-99/arch/i386/config.in linux-2.4.21-99-Snare/arch/i386/config.in *** linux-2.4.21-99/arch/i386/config.in Wed Sep 24 06:47:59 2003 --- linux-2.4.21-99-Snare/arch/i386/config.in Wed Oct 20 19:50:43 2004 *************** *** 392,397 **** --- 392,398 ---- bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditing' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/i386/defconfig linux-2.4.21-99-Snare/arch/i386/defconfig *** linux-2.4.21-99/arch/i386/defconfig Wed Sep 24 06:47:59 2003 --- linux-2.4.21-99-Snare/arch/i386/defconfig Wed Oct 20 19:51:22 2004 *************** *** 145,150 **** --- 145,151 ---- CONFIG_HOTPLUG_PCI_AMD=m CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_MAX_USER_RT_PRIO=100 CONFIG_MAX_RT_PRIO=0 diff -cr linux-2.4.21-99/arch/ia64/config.in linux-2.4.21-99-Snare/arch/ia64/config.in *** linux-2.4.21-99/arch/ia64/config.in Wed Sep 24 06:48:07 2003 --- linux-2.4.21-99-Snare/arch/ia64/config.in Wed Oct 20 19:53:33 2004 *************** *** 93,98 **** --- 93,99 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/ia64/defconfig linux-2.4.21-99-Snare/arch/ia64/defconfig *** linux-2.4.21-99/arch/ia64/defconfig Wed Sep 24 06:48:07 2003 --- linux-2.4.21-99-Snare/arch/ia64/defconfig Wed Oct 20 19:53:21 2004 *************** *** 59,64 **** --- 59,65 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set diff -cr linux-2.4.21-99/arch/m68k/config.in linux-2.4.21-99-Snare/arch/m68k/config.in *** linux-2.4.21-99/arch/m68k/config.in Wed Sep 24 06:48:05 2003 --- linux-2.4.21-99-Snare/arch/m68k/config.in Fri Nov 12 10:16:17 2004 *************** *** 89,94 **** --- 89,95 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/m68k/defconfig linux-2.4.21-99-Snare/arch/m68k/defconfig *** linux-2.4.21-99/arch/m68k/defconfig Wed Sep 24 06:48:06 2003 --- linux-2.4.21-99-Snare/arch/m68k/defconfig Fri Nov 12 10:15:52 2004 *************** *** 51,56 **** --- 51,57 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/config-shared.in linux-2.4.21-99-Snare/arch/mips/config-shared.in *** linux-2.4.21-99/arch/mips/config-shared.in Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/config-shared.in Fri Nov 12 10:21:14 2004 *************** *** 614,619 **** --- 614,620 ---- bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/mips/defconfig linux-2.4.21-99-Snare/arch/mips/defconfig *** linux-2.4.21-99/arch/mips/defconfig Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig Fri Nov 12 10:16:47 2004 *************** *** 129,134 **** --- 129,135 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-atlas linux-2.4.21-99-Snare/arch/mips/defconfig-atlas *** linux-2.4.21-99/arch/mips/defconfig-atlas Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-atlas Fri Nov 12 10:17:56 2004 *************** *** 109,114 **** --- 109,115 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-capcella linux-2.4.21-99-Snare/arch/mips/defconfig-capcella *** linux-2.4.21-99/arch/mips/defconfig-capcella Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-capcella Fri Nov 12 10:18:01 2004 *************** *** 112,117 **** --- 112,118 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-cobalt linux-2.4.21-99-Snare/arch/mips/defconfig-cobalt *** linux-2.4.21-99/arch/mips/defconfig-cobalt Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-cobalt Fri Nov 12 10:18:09 2004 *************** *** 104,109 **** --- 104,110 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-ddb5476 linux-2.4.21-99-Snare/arch/mips/defconfig-ddb5476 *** linux-2.4.21-99/arch/mips/defconfig-ddb5476 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-ddb5476 Fri Nov 12 10:18:14 2004 *************** *** 107,112 **** --- 107,113 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-ddb5477 linux-2.4.21-99-Snare/arch/mips/defconfig-ddb5477 *** linux-2.4.21-99/arch/mips/defconfig-ddb5477 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-ddb5477 Fri Nov 12 10:18:20 2004 *************** *** 107,112 **** --- 107,113 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-decstation linux-2.4.21-99-Snare/arch/mips/defconfig-decstation *** linux-2.4.21-99/arch/mips/defconfig-decstation Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-decstation Fri Nov 12 10:18:34 2004 *************** *** 102,107 **** --- 102,108 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-eagle linux-2.4.21-99-Snare/arch/mips/defconfig-eagle *** linux-2.4.21-99/arch/mips/defconfig-eagle Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-eagle Fri Nov 12 10:18:38 2004 *************** *** 111,116 **** --- 111,117 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-ev64120 linux-2.4.21-99-Snare/arch/mips/defconfig-ev64120 *** linux-2.4.21-99/arch/mips/defconfig-ev64120 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-ev64120 Fri Nov 12 10:18:42 2004 *************** *** 112,117 **** --- 112,118 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-ev96100 linux-2.4.21-99-Snare/arch/mips/defconfig-ev96100 *** linux-2.4.21-99/arch/mips/defconfig-ev96100 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-ev96100 Fri Nov 12 10:18:46 2004 *************** *** 110,115 **** --- 110,116 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-hp-lj linux-2.4.21-99-Snare/arch/mips/defconfig-hp-lj *** linux-2.4.21-99/arch/mips/defconfig-hp-lj Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-hp-lj Fri Nov 12 10:18:50 2004 *************** *** 99,104 **** --- 99,105 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set # CONFIG_SYSCTL is not set # diff -cr linux-2.4.21-99/arch/mips/defconfig-ip22 linux-2.4.21-99-Snare/arch/mips/defconfig-ip22 *** linux-2.4.21-99/arch/mips/defconfig-ip22 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-ip22 Fri Nov 12 10:18:54 2004 *************** *** 119,124 **** --- 119,125 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-it8172 linux-2.4.21-99-Snare/arch/mips/defconfig-it8172 *** linux-2.4.21-99/arch/mips/defconfig-it8172 Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-it8172 Fri Nov 12 10:18:57 2004 *************** *** 102,107 **** --- 102,108 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y # diff -cr linux-2.4.21-99/arch/mips/defconfig-ivr linux-2.4.21-99-Snare/arch/mips/defconfig-ivr *** linux-2.4.21-99/arch/mips/defconfig-ivr Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-ivr Fri Nov 12 10:19:03 2004 *************** *** 97,102 **** --- 97,103 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-jmr3927 linux-2.4.21-99-Snare/arch/mips/defconfig-jmr3927 *** linux-2.4.21-99/arch/mips/defconfig-jmr3927 Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-jmr3927 Fri Nov 12 10:19:08 2004 *************** *** 102,107 **** --- 102,108 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y # diff -cr linux-2.4.21-99/arch/mips/defconfig-malta linux-2.4.21-99-Snare/arch/mips/defconfig-malta *** linux-2.4.21-99/arch/mips/defconfig-malta Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-malta Fri Nov 12 10:19:13 2004 *************** *** 110,115 **** --- 110,116 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-nino linux-2.4.21-99-Snare/arch/mips/defconfig-nino *** linux-2.4.21-99/arch/mips/defconfig-nino Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-nino Fri Nov 12 10:19:17 2004 *************** *** 98,103 **** --- 98,104 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set # CONFIG_SYSCTL is not set # diff -cr linux-2.4.21-99/arch/mips/defconfig-ocelot linux-2.4.21-99-Snare/arch/mips/defconfig-ocelot *** linux-2.4.21-99/arch/mips/defconfig-ocelot Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-ocelot Fri Nov 12 10:19:27 2004 *************** *** 100,105 **** --- 100,106 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y # diff -cr linux-2.4.21-99/arch/mips/defconfig-osprey linux-2.4.21-99-Snare/arch/mips/defconfig-osprey *** linux-2.4.21-99/arch/mips/defconfig-osprey Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-osprey Fri Nov 12 10:19:31 2004 *************** *** 98,103 **** --- 98,104 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-pb1000 linux-2.4.21-99-Snare/arch/mips/defconfig-pb1000 *** linux-2.4.21-99/arch/mips/defconfig-pb1000 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-pb1000 Fri Nov 12 10:19:42 2004 *************** *** 127,132 **** --- 127,133 ---- # CONFIG_HOTPLUG_PCI_ACPI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-pb1100 linux-2.4.21-99-Snare/arch/mips/defconfig-pb1100 *** linux-2.4.21-99/arch/mips/defconfig-pb1100 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-pb1100 Fri Nov 12 10:19:45 2004 *************** *** 127,132 **** --- 127,133 ---- # CONFIG_HOTPLUG_PCI_ACPI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-pb1500 linux-2.4.21-99-Snare/arch/mips/defconfig-pb1500 *** linux-2.4.21-99/arch/mips/defconfig-pb1500 Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-pb1500 Fri Nov 12 10:19:50 2004 *************** *** 125,130 **** --- 125,131 ---- # CONFIG_HOTPLUG_PCI_ACPI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-rm200 linux-2.4.21-99-Snare/arch/mips/defconfig-rm200 *** linux-2.4.21-99/arch/mips/defconfig-rm200 Wed Sep 24 06:48:04 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-rm200 Fri Nov 12 10:20:10 2004 *************** *** 98,103 **** --- 98,104 ---- # CONFIG_HOTPLUG_PCI is not set # CONFIG_SYSVIPC is not set # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-sb1250-swarm linux-2.4.21-99-Snare/arch/mips/defconfig-sb1250-swarm *** linux-2.4.21-99/arch/mips/defconfig-sb1250-swarm Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-sb1250-swarm Fri Nov 12 10:20:13 2004 *************** *** 125,130 **** --- 125,131 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips/defconfig-sead linux-2.4.21-99-Snare/arch/mips/defconfig-sead *** linux-2.4.21-99/arch/mips/defconfig-sead Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/mips/defconfig-sead Fri Nov 12 10:20:21 2004 *************** *** 105,110 **** --- 105,111 ---- # CONFIG_HOTPLUG_PCI is not set # CONFIG_SYSVIPC is not set # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig linux-2.4.21-99-Snare/arch/mips64/defconfig *** linux-2.4.21-99/arch/mips64/defconfig Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig Fri Nov 12 10:22:39 2004 *************** *** 558,563 **** --- 558,564 ---- # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y # CONFIG_BSD_DISKLABEL is not set + # CONFIG_C2_AUDIT is not set # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig-atlas linux-2.4.21-99-Snare/arch/mips64/defconfig-atlas *** linux-2.4.21-99/arch/mips64/defconfig-atlas Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig-atlas Fri Nov 12 10:22:50 2004 *************** *** 108,113 **** --- 108,114 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig-ip22 linux-2.4.21-99-Snare/arch/mips64/defconfig-ip22 *** linux-2.4.21-99/arch/mips64/defconfig-ip22 Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig-ip22 Fri Nov 12 10:23:04 2004 *************** *** 119,124 **** --- 119,125 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig-ip27 linux-2.4.21-99-Snare/arch/mips64/defconfig-ip27 *** linux-2.4.21-99/arch/mips64/defconfig-ip27 Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig-ip27 Fri Nov 12 10:23:07 2004 *************** *** 113,118 **** --- 113,119 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig-ip32 linux-2.4.21-99-Snare/arch/mips64/defconfig-ip32 *** linux-2.4.21-99/arch/mips64/defconfig-ip32 Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig-ip32 Fri Nov 12 10:23:10 2004 *************** *** 109,114 **** --- 109,115 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig-malta linux-2.4.21-99-Snare/arch/mips64/defconfig-malta *** linux-2.4.21-99/arch/mips64/defconfig-malta Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig-malta Fri Nov 12 10:23:13 2004 *************** *** 108,113 **** --- 108,114 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig-sb1250-swarm linux-2.4.21-99-Snare/arch/mips64/defconfig-sb1250-swarm *** linux-2.4.21-99/arch/mips64/defconfig-sb1250-swarm Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig-sb1250-swarm Fri Nov 12 10:23:17 2004 *************** *** 125,130 **** --- 125,131 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/mips64/defconfig-sead linux-2.4.21-99-Snare/arch/mips64/defconfig-sead *** linux-2.4.21-99/arch/mips64/defconfig-sead Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/mips64/defconfig-sead Fri Nov 12 10:23:23 2004 *************** *** 103,108 **** --- 103,109 ---- # CONFIG_HOTPLUG_PCI is not set # CONFIG_SYSVIPC is not set # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/parisc/config.in linux-2.4.21-99-Snare/arch/parisc/config.in *** linux-2.4.21-99/arch/parisc/config.in Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/parisc/config.in Fri Nov 12 10:24:33 2004 *************** *** 80,85 **** --- 80,86 ---- bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/parisc/defconfig linux-2.4.21-99-Snare/arch/parisc/defconfig *** linux-2.4.21-99/arch/parisc/defconfig Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/parisc/defconfig Fri Nov 12 10:24:19 2004 *************** *** 53,58 **** --- 53,59 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y CONFIG_BINFMT_ELF=y diff -cr linux-2.4.21-99/arch/ppc/config.in linux-2.4.21-99-Snare/arch/ppc/config.in *** linux-2.4.21-99/arch/ppc/config.in Wed Sep 24 06:48:05 2003 --- linux-2.4.21-99-Snare/arch/ppc/config.in Fri Nov 12 10:24:59 2004 *************** *** 181,186 **** --- 181,187 ---- bool 'Sysctl support' CONFIG_SYSCTL bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/ppc/defconfig linux-2.4.21-99-Snare/arch/ppc/defconfig *** linux-2.4.21-99/arch/ppc/defconfig Wed Sep 24 06:48:05 2003 --- linux-2.4.21-99-Snare/arch/ppc/defconfig Fri Nov 12 10:25:08 2004 *************** *** 66,71 **** --- 66,72 ---- CONFIG_SYSCTL=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_KCORE_ELF=y CONFIG_BINFMT_ELF=y CONFIG_KERNEL_ELF=y diff -cr linux-2.4.21-99/arch/ppc64/config.in linux-2.4.21-99-Snare/arch/ppc64/config.in *** linux-2.4.21-99/arch/ppc64/config.in Wed Sep 24 06:47:58 2003 --- linux-2.4.21-99-Snare/arch/ppc64/config.in Fri Nov 12 10:25:33 2004 *************** *** 81,86 **** --- 81,87 ---- bool 'Sysctl support' CONFIG_SYSCTL bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/ppc64/defconfig linux-2.4.21-99-Snare/arch/ppc64/defconfig *** linux-2.4.21-99/arch/ppc64/defconfig Wed Sep 24 06:47:58 2003 --- linux-2.4.21-99-Snare/arch/ppc64/defconfig Fri Nov 12 10:25:40 2004 *************** *** 64,69 **** --- 64,70 ---- CONFIG_SYSCTL=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_KCORE_ELF=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_ELF32=y diff -cr linux-2.4.21-99/arch/s390/config.in linux-2.4.21-99-Snare/arch/s390/config.in *** linux-2.4.21-99/arch/s390/config.in Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/s390/config.in Fri Nov 12 10:26:02 2004 *************** *** 58,63 **** --- 58,64 ---- fi bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/s390/defconfig linux-2.4.21-99-Snare/arch/s390/defconfig *** linux-2.4.21-99/arch/s390/defconfig Wed Sep 24 06:48:11 2003 --- linux-2.4.21-99-Snare/arch/s390/defconfig Fri Nov 12 10:26:08 2004 *************** *** 52,57 **** --- 52,58 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y CONFIG_BINFMT_ELF=y diff -cr linux-2.4.21-99/arch/s390x/config.in linux-2.4.21-99-Snare/arch/s390x/config.in *** linux-2.4.21-99/arch/s390x/config.in Wed Sep 24 06:48:12 2003 --- linux-2.4.21-99-Snare/arch/s390x/config.in Fri Nov 12 10:26:25 2004 *************** *** 61,66 **** --- 61,67 ---- fi bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/s390x/defconfig linux-2.4.21-99-Snare/arch/s390x/defconfig *** linux-2.4.21-99/arch/s390x/defconfig Wed Sep 24 06:48:12 2003 --- linux-2.4.21-99-Snare/arch/s390x/defconfig Fri Nov 12 10:26:31 2004 *************** *** 53,58 **** --- 53,59 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y CONFIG_BINFMT_ELF=y diff -cr linux-2.4.21-99/arch/sh/config.in linux-2.4.21-99-Snare/arch/sh/config.in *** linux-2.4.21-99/arch/sh/config.in Wed Sep 24 06:48:07 2003 --- linux-2.4.21-99-Snare/arch/sh/config.in Fri Nov 12 10:26:50 2004 *************** *** 202,207 **** --- 202,208 ---- bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/sh/defconfig linux-2.4.21-99-Snare/arch/sh/defconfig *** linux-2.4.21-99/arch/sh/defconfig Wed Sep 24 06:48:07 2003 --- linux-2.4.21-99-Snare/arch/sh/defconfig Fri Nov 12 10:26:57 2004 *************** *** 44,49 **** --- 44,50 ---- # CONFIG_PCMCIA is not set # CONFIG_SYSVIPC is not set # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set # CONFIG_SYSCTL is not set CONFIG_KCORE_ELF=y # CONFIG_KCORE_AOUT is not set diff -cr linux-2.4.21-99/arch/sparc/config.in linux-2.4.21-99-Snare/arch/sparc/config.in *** linux-2.4.21-99/arch/sparc/config.in Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/sparc/config.in Fri Nov 12 10:27:19 2004 *************** *** 62,67 **** --- 62,68 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/sparc/defconfig linux-2.4.21-99-Snare/arch/sparc/defconfig *** linux-2.4.21-99/arch/sparc/defconfig Wed Sep 24 06:48:01 2003 --- linux-2.4.21-99-Snare/arch/sparc/defconfig Fri Nov 12 10:27:27 2004 *************** *** 57,62 **** --- 57,63 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y CONFIG_BINFMT_AOUT=y diff -cr linux-2.4.21-99/arch/sparc64/config.in linux-2.4.21-99-Snare/arch/sparc64/config.in *** linux-2.4.21-99/arch/sparc64/config.in Wed Sep 24 06:48:06 2003 --- linux-2.4.21-99-Snare/arch/sparc64/config.in Fri Nov 12 10:27:42 2004 *************** *** 61,66 **** --- 61,67 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/sparc64/defconfig linux-2.4.21-99-Snare/arch/sparc64/defconfig *** linux-2.4.21-99/arch/sparc64/defconfig Wed Sep 24 06:48:06 2003 --- linux-2.4.21-99-Snare/arch/sparc64/defconfig Fri Nov 12 10:27:48 2004 *************** *** 59,64 **** --- 59,65 ---- CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y CONFIG_SPARC32_COMPAT=y diff -cr linux-2.4.21-99/arch/um/config.in linux-2.4.21-99-Snare/arch/um/config.in *** linux-2.4.21-99/arch/um/config.in Wed Sep 24 06:48:12 2003 --- linux-2.4.21-99-Snare/arch/um/config.in Fri Nov 12 10:28:45 2004 *************** *** 31,36 **** --- 31,37 ---- bool 'Networking support' CONFIG_NET bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/um/config.release linux-2.4.21-99-Snare/arch/um/config.release *** linux-2.4.21-99/arch/um/config.release Wed Sep 24 06:48:12 2003 --- linux-2.4.21-99-Snare/arch/um/config.release Fri Nov 12 10:29:03 2004 *************** *** 19,24 **** --- 19,25 ---- CONFIG_NET=y CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_BINFMT_AOUT=y CONFIG_BINFMT_ELF=y diff -cr linux-2.4.21-99/arch/um/defconfig linux-2.4.21-99-Snare/arch/um/defconfig *** linux-2.4.21-99/arch/um/defconfig Wed Sep 24 06:48:12 2003 --- linux-2.4.21-99-Snare/arch/um/defconfig Fri Nov 12 10:28:52 2004 *************** *** 21,26 **** --- 21,27 ---- CONFIG_NET=y CONFIG_SYSVIPC=y CONFIG_BSD_PROCESS_ACCT=y + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_BINFMT_AOUT=y CONFIG_BINFMT_ELF=y diff -cr linux-2.4.21-99/arch/x86_64/config.in linux-2.4.21-99-Snare/arch/x86_64/config.in *** linux-2.4.21-99/arch/x86_64/config.in Wed Sep 24 06:47:57 2003 --- linux-2.4.21-99-Snare/arch/x86_64/config.in Fri Nov 12 10:29:47 2004 *************** *** 124,129 **** --- 124,130 ---- bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT + bool 'SNARE C2 Auditin' CONFIG_C2_AUDIT bool 'Sysctl support' CONFIG_SYSCTL int 'Maximum User Real-Time Priority' CONFIG_MAX_USER_RT_PRIO 100 int 'Maximum Kernel Real-time Priority' CONFIG_MAX_RT_PRIO 0 diff -cr linux-2.4.21-99/arch/x86_64/defconfig linux-2.4.21-99-Snare/arch/x86_64/defconfig *** linux-2.4.21-99/arch/x86_64/defconfig Wed Sep 24 06:47:57 2003 --- linux-2.4.21-99-Snare/arch/x86_64/defconfig Fri Nov 12 10:29:55 2004 *************** *** 59,64 **** --- 59,65 ---- # CONFIG_HOTPLUG_PCI is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set + # CONFIG_C2_AUDIT is not set CONFIG_SYSCTL=y CONFIG_KCORE_ELF=y CONFIG_BINFMT_ELF=y Only in linux-2.4.21-99-Snare: audit Only in linux-2.4.21-99-Snare: configs Only in linux-2.4.21-99-Snare/drivers/scsi: sg_base_tmp.c Only in linux-2.4.21-99-Snare/drivers/scsi: sim710_d.h Only in linux-2.4.21-99-Snare/drivers/scsi: sim710_u.h diff -cr linux-2.4.21-99/fs/exec.c linux-2.4.21-99-Snare/fs/exec.c *** linux-2.4.21-99/fs/exec.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/fs/exec.c Wed Oct 20 20:55:57 2004 *************** *** 35,40 **** --- 35,41 ---- #include #include #include + #include #include #include #include *************** *** 934,945 **** struct file *file; int retval; unsigned long i; file = open_exec(filename); retval = PTR_ERR(file); ! if (IS_ERR(file)) return retval; bprm.p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *); memset(bprm.page, 0, MAX_ARG_PAGES*sizeof(bprm.page[0])); --- 935,954 ---- struct file *file; int retval; unsigned long i; + #if defined(CONFIG_C2_AUDIT) + char *SNARE_args; + SNARE_args=c2_audit_copy_argv(argv); + #else + #define SNARE_args (char *)NULL + #endif file = open_exec(filename); retval = PTR_ERR(file); ! if (IS_ERR(file)) { ! c2_audit_execve((char *)NULL, filename, SNARE_args, retval); return retval; + } bprm.p = PAGE_SIZE*MAX_ARG_PAGES-sizeof(void *); memset(bprm.page, 0, MAX_ARG_PAGES*sizeof(bprm.page[0])); *************** *** 953,964 **** --- 962,975 ---- bprm.flags = 0; if ((bprm.argc = count(argv, bprm.p / sizeof(void *))) < 0) { allow_write_access(file); + c2_audit_execve((char *) NULL, filename, SNARE_args, bprm.argc); fput(file); return bprm.argc; } if ((bprm.envc = count(envp, bprm.p / sizeof(void *))) < 0) { allow_write_access(file); + c2_audit_execve((char *) NULL, filename, SNARE_args, bprm.envc); fput(file); return bprm.envc; } *************** *** 986,991 **** --- 997,1003 ---- if (retval >= 0) { RAS_HOOK(exec_hook, file->f_dentry->d_name.len, file->f_dentry->d_name.name, regs); + c2_audit_execve((char *)NULL, filename, SNARE_args, retval); /* execve success */ return retval; } *************** *** 993,1000 **** out: /* Something went wrong, return the inode and free the argument pages*/ allow_write_access(bprm.file); ! if (bprm.file) fput(bprm.file); for (i = 0 ; i < MAX_ARG_PAGES ; i++) { struct page * page = bprm.page[i]; --- 1005,1014 ---- out: /* Something went wrong, return the inode and free the argument pages*/ allow_write_access(bprm.file); ! if (bprm.file) { fput(bprm.file); + } + c2_audit_execve((char *) NULL, filename, SNARE_args, retval); for (i = 0 ; i < MAX_ARG_PAGES ; i++) { struct page * page = bprm.page[i]; diff -cr linux-2.4.21-99/fs/namei.c linux-2.4.21-99-Snare/fs/namei.c *** linux-2.4.21-99/fs/namei.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/fs/namei.c Wed Oct 20 20:34:26 2004 *************** *** 22,27 **** --- 22,28 ---- #include #include #include + #include #include #include *************** *** 1308,1322 **** struct dentry * dentry; struct nameidata nd; ! if (S_ISDIR(mode)) return -EPERM; tmp = getname(filename); ! if (IS_ERR(tmp)) return PTR_ERR(tmp); error = path_lookup(tmp, LOOKUP_PARENT, &nd); ! if (error) goto out; dentry = lookup_create(&nd, 0); error = PTR_ERR(dentry); --- 1309,1329 ---- struct dentry * dentry; struct nameidata nd; ! if (S_ISDIR(mode)) { ! c2_audit_mknod((char *)NULL,filename,mode,dev,-EPERM); return -EPERM; + } tmp = getname(filename); ! if (IS_ERR(tmp)) { ! c2_audit_mknod((char *)NULL,(char *)NULL,mode,dev,PTR_ERR(tmp)); return PTR_ERR(tmp); + } error = path_lookup(tmp, LOOKUP_PARENT, &nd); ! if (error) { ! c2_audit_mknod(tmp,(char *)NULL,mode,dev,error); goto out; + } dentry = lookup_create(&nd, 0); error = PTR_ERR(dentry); *************** *** 1339,1344 **** --- 1346,1353 ---- dput(dentry); } up(&nd.dentry->d_inode->i_sem); + + c2_audit_mknod(nd.dentry->d_name.name,(char *)NULL,mode,dev,error); path_release(&nd); out: putname(tmp); *************** *** 1379,1391 **** tmp = getname(pathname); error = PTR_ERR(tmp); ! if (!IS_ERR(tmp)) { struct dentry *dentry; struct nameidata nd; error = path_lookup(tmp, LOOKUP_PARENT, &nd); ! if (error) goto out; dentry = lookup_create(&nd, 1); error = PTR_ERR(dentry); if (!IS_ERR(dentry)) { --- 1388,1404 ---- tmp = getname(pathname); error = PTR_ERR(tmp); ! if (IS_ERR(tmp)) { ! c2_audit_mkdir((char *)NULL,(char *)NULL,mode & ~current->fs->umask,error); ! } else { struct dentry *dentry; struct nameidata nd; error = path_lookup(tmp, LOOKUP_PARENT, &nd); ! if (error) { ! c2_audit_mkdir(tmp,(char *)NULL,mode & ~current->fs->umask,error); goto out; + } dentry = lookup_create(&nd, 1); error = PTR_ERR(dentry); if (!IS_ERR(dentry)) { *************** *** 1395,1400 **** --- 1408,1414 ---- dput(dentry); } up(&nd.dentry->d_inode->i_sem); + c2_audit_mkdir(tmp,(char *)NULL,mode & ~current->fs->umask,error); path_release(&nd); out: putname(tmp); *************** *** 1477,1488 **** struct nameidata nd; name = getname(pathname); ! if(IS_ERR(name)) return PTR_ERR(name); error = path_lookup(name, LOOKUP_PARENT, &nd); ! if (error) goto exit; switch(nd.last_type) { case LAST_DOTDOT: --- 1491,1505 ---- struct nameidata nd; name = getname(pathname); ! if(IS_ERR(name)) { ! c2_audit_rmdir((char *)NULL,(char *)NULL,PTR_ERR(name)); return PTR_ERR(name); + } error = path_lookup(name, LOOKUP_PARENT, &nd); ! if (error) { goto exit; + } switch(nd.last_type) { case LAST_DOTDOT: *************** *** 1506,1511 **** --- 1523,1529 ---- exit1: path_release(&nd); exit: + c2_audit_rmdir(name,(char *)NULL,error); putname(name); return error; } *************** *** 1545,1556 **** struct nameidata nd; name = getname(pathname); ! if(IS_ERR(name)) return PTR_ERR(name); error = path_lookup(name, LOOKUP_PARENT, &nd); ! if (error) goto exit; error = -EISDIR; if (nd.last_type != LAST_NORM) goto exit1; --- 1563,1578 ---- struct nameidata nd; name = getname(pathname); ! if(IS_ERR(name)) { ! c2_audit_unlink(pathname,(char *)NULL,PTR_ERR(name)); return PTR_ERR(name); + } error = path_lookup(name, LOOKUP_PARENT, &nd); ! if (error) { ! c2_audit_unlink(name,(char *)NULL,error); goto exit; + } error = -EISDIR; if (nd.last_type != LAST_NORM) goto exit1; *************** *** 1567,1572 **** --- 1589,1595 ---- } up(&nd.dentry->d_inode->i_sem); exit1: + c2_audit_unlink(name,(char *)NULL,error); path_release(&nd); exit: putname(name); *************** *** 1610,1627 **** char * from; char * to; from = getname(oldname); ! if(IS_ERR(from)) return PTR_ERR(from); to = getname(newname); error = PTR_ERR(to); ! if (!IS_ERR(to)) { struct dentry *dentry; struct nameidata nd; error = path_lookup(to, LOOKUP_PARENT, &nd); ! if (error) goto out; dentry = lookup_create(&nd, 0); error = PTR_ERR(dentry); if (!IS_ERR(dentry)) { --- 1633,1658 ---- char * from; char * to; + // c2_audit_symlink(oldname,newname); + from = getname(oldname); ! if(IS_ERR(from)) { ! c2_audit_symlink((char *)NULL,(char *)NULL,(char *)NULL,newname,PTR_ERR(from)); return PTR_ERR(from); + } to = getname(newname); error = PTR_ERR(to); ! if (IS_ERR(to)) { ! c2_audit_symlink(from,(char *)NULL,(char *)NULL,(char *)NULL,PTR_ERR(to)); ! } else { struct dentry *dentry; struct nameidata nd; error = path_lookup(to, LOOKUP_PARENT, &nd); ! if (error) { ! c2_audit_symlink(from,(char *)NULL,to,(char *)NULL,error); goto out; + } dentry = lookup_create(&nd, 0); error = PTR_ERR(dentry); if (!IS_ERR(dentry)) { *************** *** 1629,1634 **** --- 1660,1666 ---- dput(dentry); } up(&nd.dentry->d_inode->i_sem); + c2_audit_symlink(from,(char *)NULL,nd.dentry->d_name.name,(char *)NULL,error); path_release(&nd); out: putname(to); *************** *** 1693,1711 **** to = getname(newname); error = PTR_ERR(to); ! if (!IS_ERR(to)) { struct dentry *new_dentry; struct nameidata nd, old_nd; error = __user_walk(oldname, LOOKUP_POSITIVE, &old_nd); ! if (error) goto exit; error = path_lookup(to, LOOKUP_PARENT, &nd); ! if (error) goto out; error = -EXDEV; ! if (old_nd.mnt != nd.mnt) goto out_release; new_dentry = lookup_create(&nd, 0); error = PTR_ERR(new_dentry); if (!IS_ERR(new_dentry)) { --- 1725,1750 ---- to = getname(newname); error = PTR_ERR(to); ! if (IS_ERR(to)) { ! c2_audit_link((char *)NULL,oldname,(char *)NULL,(char *)NULL,error); ! } else { struct dentry *new_dentry; struct nameidata nd, old_nd; error = __user_walk(oldname, LOOKUP_POSITIVE, &old_nd); ! if (error) { ! c2_audit_link((char *)NULL,oldname,to,(char *)NULL,error); goto exit; + } error = path_lookup(to, LOOKUP_PARENT, &nd); ! if (error) { ! c2_audit_link(old_nd.dentry->d_name.name,(char *)NULL,to,(char *)NULL,error); goto out; + } error = -EXDEV; ! if (old_nd.mnt != nd.mnt) { goto out_release; + } new_dentry = lookup_create(&nd, 0); error = PTR_ERR(new_dentry); if (!IS_ERR(new_dentry)) { *************** *** 1714,1719 **** --- 1753,1759 ---- } up(&nd.dentry->d_inode->i_sem); out_release: + c2_audit_link(old_nd.dentry->d_name.name,(char *)NULL,nd.dentry->d_name.name,(char *)NULL,error); path_release(&nd); out: path_release(&old_nd); *************** *** 1965,1977 **** char * to; from = getname(oldname); ! if(IS_ERR(from)) return PTR_ERR(from); to = getname(newname); error = PTR_ERR(to); if (!IS_ERR(to)) { error = do_rename(from,to); putname(to); } putname(from); return error; --- 2005,2022 ---- char * to; from = getname(oldname); ! if(IS_ERR(from)) { ! c2_audit_rename((char *)NULL,(char *)NULL,(char *)NULL,newname,PTR_ERR(from)); return PTR_ERR(from); + } to = getname(newname); error = PTR_ERR(to); if (!IS_ERR(to)) { error = do_rename(from,to); + c2_audit_rename(from,(char *)NULL,to,(char *)NULL,error); putname(to); + } else { + c2_audit_rename(from,(char *)NULL,(char *)NULL,(char *)NULL,error); } putname(from); return error; diff -cr linux-2.4.21-99/fs/namespace.c linux-2.4.21-99-Snare/fs/namespace.c *** linux-2.4.21-99/fs/namespace.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/fs/namespace.c Wed Oct 20 20:14:43 2004 *************** *** 20,25 **** --- 20,26 ---- #include #include + #include struct vfsmount *do_kern_mount(const char *type, int flags, char *name, void *data); int do_remount_sb(struct super_block *sb, int flags, void * data); *************** *** 366,374 **** struct nameidata nd; int retval; retval = __user_walk(name, LOOKUP_POSITIVE|LOOKUP_FOLLOW, &nd); ! if (retval) goto out; retval = -EINVAL; if (nd.dentry != nd.mnt->mnt_root) goto dput_and_out; --- 367,379 ---- struct nameidata nd; int retval; + // c2_audit_umount(name,flags); + retval = __user_walk(name, LOOKUP_POSITIVE|LOOKUP_FOLLOW, &nd); ! if (retval) { ! c2_audit_umount((char *)NULL,name,flags,retval); goto out; + } retval = -EINVAL; if (nd.dentry != nd.mnt->mnt_root) goto dput_and_out; *************** *** 381,386 **** --- 386,392 ---- retval = do_umount(nd.mnt, flags); dput_and_out: + c2_audit_umount(nd.dentry->d_name.name,(char *)NULL,flags,retval); path_release(&nd); out: return retval; *************** *** 833,849 **** char *dir_page; retval = copy_mount_options (type, &type_page); ! if (retval < 0) return retval; dir_page = getname(dir_name); retval = PTR_ERR(dir_page); ! if (IS_ERR(dir_page)) goto out1; retval = copy_mount_options (dev_name, &dev_page); ! if (retval < 0) goto out2; retval = copy_mount_options (data, &data_page); if (retval < 0) --- 839,861 ---- char *dir_page; retval = copy_mount_options (type, &type_page); ! if (retval < 0) { ! c2_audit_mount((char *)NULL,dev_name,(char *)NULL,dir_name,flags,retval); return retval; + } dir_page = getname(dir_name); retval = PTR_ERR(dir_page); ! if (IS_ERR(dir_page)) { ! c2_audit_mount((char *)NULL,dev_name,(char *)NULL,dir_name,flags,retval); goto out1; + } retval = copy_mount_options (dev_name, &dev_page); ! if (retval < 0) { ! c2_audit_mount((char *)NULL,dev_name,dir_page,(char *)NULL,flags,retval); goto out2; + } retval = copy_mount_options (data, &data_page); if (retval < 0) *************** *** 856,861 **** --- 868,874 ---- free_page(data_page); out3: + c2_audit_mount((char *)dev_page,(char *)NULL,dir_page,(char *)NULL,flags,retval); free_page(dev_page); out2: putname(dir_page); diff -cr linux-2.4.21-99/fs/open.c linux-2.4.21-99-Snare/fs/open.c *** linux-2.4.21-99/fs/open.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/fs/open.c Wed Oct 20 20:41:46 2004 *************** *** 15,20 **** --- 15,21 ---- #include #include #include + #include #include #include *************** *** 123,134 **** int error; error = -EINVAL; ! if (length < 0) /* sorry, but loff_t says... */ goto out; error = user_path_walk(path, &nd); ! if (error) goto out; inode = nd.dentry->d_inode; /* For directories it's -EISDIR, for other non-regulars - -EINVAL */ --- 124,139 ---- int error; error = -EINVAL; ! if (length < 0) { /* sorry, but loff_t says... */ ! c2_audit_truncate((char *)NULL,path,length,error); goto out; + } error = user_path_walk(path, &nd); ! if (error) { ! c2_audit_truncate((char *)NULL,path,length,error); goto out; + } inode = nd.dentry->d_inode; /* For directories it's -EISDIR, for other non-regulars - -EINVAL */ *************** *** 171,176 **** --- 176,182 ---- put_write_access(inode); dput_and_out: + c2_audit_truncate(nd.dentry->d_name.name,(char *)NULL,length,error); path_release(&nd); out: return error; *************** *** 190,201 **** int error; error = -EINVAL; ! if (length < 0) goto out; error = -EBADF; file = fget(fd); ! if (!file) goto out; /* explicitly opened as large or we are on 64-bit box */ if (file->f_flags & O_LARGEFILE) --- 196,211 ---- int error; error = -EINVAL; ! if (length < 0) { ! c2_audit_truncate((char *)NULL,(char *)NULL,length,error); goto out; + } error = -EBADF; file = fget(fd); ! if (!file) { ! c2_audit_truncate((char *)NULL,(char *)NULL,length,error); goto out; + } /* explicitly opened as large or we are on 64-bit box */ if (file->f_flags & O_LARGEFILE) *************** *** 203,208 **** --- 213,219 ---- dentry = file->f_dentry; inode = dentry->d_inode; + error = -EINVAL; if (!S_ISREG(inode->i_mode) || !(file->f_mode & FMODE_WRITE)) goto out_putf; *************** *** 220,225 **** --- 231,237 ---- if (!error) error = do_truncate(dentry, length); out_putf: + c2_audit_truncate(file->f_dentry->d_name.name,(char *)NULL,length,error); fput(file); out: return error; *************** *** 390,397 **** struct nameidata nd; error = __user_walk(filename,LOOKUP_POSITIVE|LOOKUP_FOLLOW|LOOKUP_DIRECTORY,&nd); ! if (error) goto out; error = permission(nd.dentry->d_inode,MAY_EXEC); if (error) --- 402,411 ---- struct nameidata nd; error = __user_walk(filename,LOOKUP_POSITIVE|LOOKUP_FOLLOW|LOOKUP_DIRECTORY,&nd); ! if (error) { ! c2_audit_chroot((char *)NULL,filename,error); goto out; + } error = permission(nd.dentry->d_inode,MAY_EXEC); if (error) *************** *** 400,405 **** --- 414,420 ---- set_fs_pwd(current->fs, nd.mnt, nd.dentry); dput_and_out: + c2_audit_chroot(nd.dentry->d_name.name,(char *)NULL,error); path_release(&nd); out: return error; *************** *** 471,478 **** struct iattr newattrs; file = fget(fd); ! if (!file) goto out; dentry = file->f_dentry; inode = dentry->d_inode; --- 486,495 ---- struct iattr newattrs; file = fget(fd); ! if (!file) { ! c2_audit_chmod((char *)NULL, (char *)NULL, mode,err); goto out; + } dentry = file->f_dentry; inode = dentry->d_inode; *************** *** 490,495 **** --- 507,513 ---- err = notify_change(dentry, &newattrs); out_putf: + c2_audit_chmod(file->f_dentry->d_name.name, (char *)NULL, mode, err); fput(file); out: return err; *************** *** 503,510 **** struct iattr newattrs; error = user_path_walk(filename, &nd); ! if (error) goto out; inode = nd.dentry->d_inode; error = -EROFS; --- 521,530 ---- struct iattr newattrs; error = user_path_walk(filename, &nd); ! if (error) { ! c2_audit_chmod((char *)NULL,filename,mode,error); goto out; + } inode = nd.dentry->d_inode; error = -EROFS; *************** *** 522,527 **** --- 542,548 ---- error = notify_change(nd.dentry, &newattrs); dput_and_out: + c2_audit_chmod(nd.dentry->d_name.name,(char *)NULL,mode,error); path_release(&nd); out: return error; *************** *** 595,601 **** --- 616,625 ---- error = user_path_walk(filename, &nd); if (!error) { error = chown_common(nd.dentry, user, group); + c2_audit_chown(nd.dentry->d_name.name,(char *)NULL,user,group,error); path_release(&nd); + } else { + c2_audit_chown((char *)NULL,filename,user,group,error); } return error; } *************** *** 608,614 **** --- 632,641 ---- error = user_path_walk_link(filename, &nd); if (!error) { error = chown_common(nd.dentry, user, group); + c2_audit_chown(nd.dentry->d_name.name,(char *)NULL,user,group,error); path_release(&nd); + } else { + c2_audit_chown((char *)NULL,filename,user,group,error); } return error; } *************** *** 622,628 **** --- 649,658 ---- file = fget(fd); if (file) { error = chown_common(file->f_dentry, user, group); + c2_audit_chown(file->f_dentry->d_name.name,(char *)NULL,user,group,error); fput(file); + } else { + c2_audit_chown((char *)NULL,(char *)NULL,user,group,error); } return error; } *************** *** 788,806 **** #endif tmp = getname(filename); fd = PTR_ERR(tmp); ! if (!IS_ERR(tmp)) { fd = get_unused_fd(); if (fd >= 0) { struct file *f = filp_open(tmp, flags, mode); error = PTR_ERR(f); ! if (IS_ERR(f)) goto out_error; RAS_HOOK(open_hook, fd, f->f_dentry->d_name.len, f->f_dentry->d_name.name); fd_install(fd, f); } out: putname(tmp); } return fd; --- 818,841 ---- #endif tmp = getname(filename); fd = PTR_ERR(tmp); ! if (IS_ERR(tmp)) { ! c2_audit_open((char *)NULL,(char *)NULL,flags,mode,fd); ! } else { fd = get_unused_fd(); if (fd >= 0) { struct file *f = filp_open(tmp, flags, mode); error = PTR_ERR(f); ! if (IS_ERR(f)) { ! c2_audit_open(tmp,(char *)NULL,flags,mode,fd); goto out_error; + } RAS_HOOK(open_hook, fd, f->f_dentry->d_name.len, f->f_dentry->d_name.name); fd_install(fd, f); } out: + c2_audit_open(tmp,(char *)NULL,flags,mode,fd); putname(tmp); } return fd; Only in linux-2.4.21-99/include: asm diff -cr linux-2.4.21-99/include/linux/audit.h linux-2.4.21-99-Snare/include/linux/audit.h *** linux-2.4.21-99/include/linux/audit.h Wed Sep 24 06:47:28 2003 --- linux-2.4.21-99-Snare/include/linux/audit.h Thu Oct 21 12:46:02 2004 *************** *** 1,338 **** /* ! * audit.h * ! * Copyright (c) 2003 SuSE Linux AG ! * Written by okir@suse.de, based on ideas from systrace, written by ! * Niels Provos (OpenBSD) and ported to Linux by Marius Aamodt Eriksen. ! * ! * GPL goes here ! */ ! ! #ifndef _AUDIT_H ! #define _AUDIT_H ! ! #include ! #include ! ! #ifdef __KERNEL__ ! #include ! #endif ! ! #define AUDIT_API_VERSION 0x20030801 ! ! #define AUD_MAX_HOSTNAME 256 ! #define AUD_MAX_ADDRESS 256 ! #define AUD_MAX_TERMINAL 256 ! #define AUD_MAX_EVNAME 16 ! ! /* ! * System call intercept policy ! */ ! struct audit_policy { ! unsigned int code; ! unsigned int action; ! unsigned int filter; ! }; ! ! #define AUDIT_IGNORE 0x0000 ! #define AUDIT_LOG 0x0001 ! /* Policy flags that can be set in filter rules using ! * the return() predicate ! */ ! #define AUDIT_VERBOSE 0x0002 ! ! #ifdef __KERNEL__ ! #define AUDIT_RETURN 0x0100 ! #define AUDIT_INVAL 0x0301 ! #endif ! ! ! /* ! * Special values for audit_policy.code ! */ ! enum { ! __AUD_POLICY_LAST_SYSCALL = 299, ! AUD_POLICY_FORK, ! AUD_POLICY_EXIT, ! AUD_POLICY_NETLINK, ! AUD_POLICY_LOGIN, ! AUD_POLICY_USERMSG, ! ! __AUD_MAX_POLICY ! }; - /* - * Filter setup. - */ - struct audit_filter { - unsigned short num; - unsigned short op; - char event[AUD_MAX_EVNAME]; - union { - struct { - unsigned short target; - unsigned short filter; - } apply; - struct { - unsigned short filt1, filt2; - } bool; - struct { - unsigned int action; - } freturn; - struct { - u_int64_t value; - u_int64_t mask; - } integer; - struct { - char * value; - } string; - } u; - }; - enum { - /* Boolean operations */ - AUD_FILT_OP_AND = 0, /* pair of filters */ - AUD_FILT_OP_OR, /* pair of filters */ - AUD_FILT_OP_NOT, /* single filter */ - AUD_FILT_OP_APPLY, /* target + predicate filter */ - AUD_FILT_OP_RETURN, /* return immediately */ - AUD_FILT_OP_TRUE, /* always true */ - AUD_FILT_OP_FALSE, /* always false */ - - /* Filter predicates, taking one argument */ - AUD_FILT_OP_EQ = 0x10, /* int */ - AUD_FILT_OP_NE, /* int */ - AUD_FILT_OP_GT, /* int */ - AUD_FILT_OP_GE, /* int */ - AUD_FILT_OP_LE, /* int */ - AUD_FILT_OP_LT, /* int */ - AUD_FILT_OP_MASK, /* int */ - AUD_FILT_OP_STREQ = 0x20, /* string */ - AUD_FILT_OP_PREFIX, /* path */ - }; - #define AUD_FILT_ARGTYPE_INT(op) (((op) >> 4) == 1) - #define AUD_FILT_ARGTYPE_STR(op) (((op) >> 4) == 2) - enum { - /* target values < 128 denote syscall arguments 0 .. 127 - * (in case anyone ever comes up with a system call - * taking 127 arguments :) - */ - AUD_FILT_TGT_USERMSG_EVNAME = 0xFD, - AUD_FILT_TGT_MINOR_CODE = 0xFE, - AUD_FILT_TGT_RETURN_CODE = 0xFF, - - AUD_FILT_TGT_UID = 0x100, - AUD_FILT_TGT_GID, - AUD_FILT_TGT_DUMPABLE, - AUD_FILT_TGT_EXIT_CODE, - AUD_FILT_TGT_LOGIN_UID, - - AUD_FILT_TGT_FILE_MODE = 0x200, - AUD_FILT_TGT_FILE_DEV, - AUD_FILT_TGT_FILE_INO, - AUD_FILT_TGT_FILE_UID, - AUD_FILT_TGT_FILE_GID, - AUD_FILT_TGT_FILE_RDEV_MAJOR, - AUD_FILT_TGT_FILE_RDEV_MINOR, - - AUD_FILT_TGT_SOCK_FAMILY = 0x300, - AUD_FILT_TGT_SOCK_TYPE, - - AUD_FILT_TGT_NETLINK_TYPE = 0x400, - AUD_FILT_TGT_NETLINK_FLAGS, - AUD_FILT_TGT_NETLINK_FAMILY, - }; - #define AUD_FILT_TGT_SYSCALL_ATTR(x) (((x) >> 8) == 0) - #define AUD_FILT_TGT_PROCESS_ATTR(x) (((x) >> 8) == 1) - #define AUD_FILT_TGT_FILE_ATTR(x) (((x) >> 8) == 2) - #define AUD_FILT_TGT_SOCK_ATTR(x) (((x) >> 8) == 3) - #define AUD_FILT_TGT_NETLINK_ATTR(x) (((x) >> 8) == 4) ! /* ! * Login data ! */ ! struct audit_login { ! uid_t uid; ! char hostname[AUD_MAX_HOSTNAME]; ! char address[AUD_MAX_ADDRESS]; ! char terminal[AUD_MAX_TERMINAL]; }; ! /* ! * Message passing from user space ! */ ! struct audit_message { ! unsigned int msg_type; ! char msg_evname[AUD_MAX_EVNAME]; ! void * msg_data; ! size_t msg_size; ! }; - /* - * IOCTLs to configure the audit subsystem - */ - #define AUD_MAGIC '@' - - /* The _IOR's are in fact wrong; they should be _IOW's :-( */ - #define AUIOCATTACH _IO(AUD_MAGIC, 101) - #define AUIOCDETACH _IO(AUD_MAGIC, 102) - #define AUIOCSUSPEND _IO(AUD_MAGIC, 103) - #define AUIOCRESUME _IO(AUD_MAGIC, 104) - #define AUIOCCLRPOLICY _IO(AUD_MAGIC, 105) - #define AUIOCSETPOLICY _IOR(AUD_MAGIC, 106, struct audit_policy) - #define AUIOCIAMAUDITD _IO(AUD_MAGIC, 107) - #define AUIOCSETAUDITID _IO(AUD_MAGIC, 108) - #define AUIOCLOGIN _IOR(AUD_MAGIC, 110, struct audit_login) - #define AUIOCUSERMESSAGE _IOR(AUD_MAGIC, 111, struct audit_message) - #define AUIOCCLRFILTER _IO(AUD_MAGIC, 112) - #define AUIOCSETFILTER _IOR(AUD_MAGIC, 113, struct audit_filter) - - /* Pass as ioctl(fd, AUIOCIAMAUDITD, AUDIT_TRACE_ALL) */ - #define AUDIT_TRACE_ALL 1 - - /* - * This message is generated when a process forks - * or exits, to help auditd with book-keeping. - */ - struct aud_msg_child { - pid_t new_pid; - }; - - /* - * This message reports system call arguments. - * - * personality execution domain (see linux/personality.h) - * code the system call code - * result return value of system call - * length length of data field - * data field contains all arguments, TLV encoded as follows: - * - * type 4 octets (AUD_ARG_xxx) - * length 4 octets length of argument - * ... N octets argument data - * - * Note that path name arguments are subjected to a realpath() - * style operation prior to sending them up to user land. - */ - struct aud_msg_syscall { - int personality; - - /* System call codes can have major/minor number. - * for instance in the socketcall() case, major - * would be __NR_socketcall, and minor would be - * SYS_ACCEPT (or whatever the specific call is). - */ - int major, minor; - - int result; - unsigned int length; - unsigned char data[1]; /* variable size */ - }; - - /* - * The LOGIN message is generated by the kernel when - * a user application performs an AUIOCLOGIN ioctl. - */ - struct aud_msg_login { - unsigned int uid; - char hostname[AUD_MAX_HOSTNAME]; - char address[AUD_MAX_ADDRESS]; - char terminal[AUD_MAX_TERMINAL]; - char executable[PATH_MAX]; - }; - - /* - * Exit message - */ - struct aud_msg_exit { - long code; - }; - - /* - * Network config (rtnetlink) call - */ - struct aud_msg_netlink { - unsigned int groups, dst_groups; - int result; - unsigned int length; - unsigned char data[1]; /* variable size */ - }; - - /* Values for msg_type */ - #define AUDIT_MSG_LOGIN 1 - #define AUDIT_MSG_SYSCALL 2 - #define AUDIT_MSG_EXIT 3 - #define AUDIT_MSG_NETLINK 4 - #define AUDIT_MSG_USERBASE 256 /* user land messages start here */ - - /* Values for msg_arch */ - enum { - AUDIT_ARCH_I386, - AUDIT_ARCH_PPC, - AUDIT_ARCH_PPC64, - AUDIT_ARCH_S390, - AUDIT_ARCH_S390X, - AUDIT_ARCH_X86_64, - AUDIT_ARCH_IA64, - }; - - - struct aud_message { - u_int32_t msg_seqnr; - u_int16_t msg_type; - u_int16_t msg_arch; - - pid_t msg_pid; - size_t msg_size; - unsigned long msg_timestamp; - - unsigned int msg_audit_id; - unsigned int msg_login_uid; - unsigned int msg_euid, msg_ruid, msg_suid, msg_fsuid; - unsigned int msg_egid, msg_rgid, msg_sgid, msg_fsgid; - - /* Event name */ - char msg_evname[AUD_MAX_EVNAME]; - - union { - char dummy; - } msg_data; - }; - - /* - * Encoding of arguments passed up to auditd - */ - enum { - /* value 0 is reserved */ - AUDIT_ARG_IMMEDIATE = 1, - AUDIT_ARG_POINTER, - AUDIT_ARG_STRING, - AUDIT_ARG_PATH, - AUDIT_ARG_NULL, - AUDIT_ARG_ERROR, - AUDIT_ARG_VECTOR, /* for execve */ #ifdef __KERNEL__ ! /* Internal use only */ ! AUDIT_ARG_ARRAY = 100, ! AUDIT_ARG_FILEDESC, ! #endif ! AUDIT_ARG_END = 0 ! }; ! ! #ifdef __KERNEL__ ! ! struct sk_buff; ! ! extern int audit_intercept(struct pt_regs *); ! extern void audit_result(struct pt_regs *); ! extern void audit_fork(struct task_struct *, struct task_struct *); ! extern void audit_exit(struct task_struct *, long); ! extern void audit_netlink_msg(struct sk_buff *, int); #endif /* __KERNEL__ */ ! #endif /* _AUDIT_H */ --- 1,500 ---- /* ! * linux/audit/audit.h * ! * Original: ! * Copyright (c) 1999-2004 InterSect Alliance Pty Ltd ! * - http://www.intersectalliance.com/ ! * Additions: ! * Copyright (c) 2004 Silicon Graphics, Inc. All rights reserved. ! */ ! ! #ifndef __C2_AUDIT_H ! #define __C2_AUDIT_H ! ! // If the user has not turned on C2 Auditing, define all 'public' routines out. ! ! #if defined(CONFIG_C2_AUDIT) ! ! // I was going to use __NR_xxx, but we need audit events for events that ! // may NOT be system calls specifically (eg: login, connect/accept) ! #define AUDIT_open 1 ! #define AUDIT_mkdir 2 ! #define AUDIT_unlink 3 ! #define AUDIT_rmdir 4 ! #define AUDIT_chown 5 ! #define AUDIT_chmod 6 ! #define AUDIT_symlink 7 ! #define AUDIT_link 8 ! #define AUDIT_rename 9 ! #define AUDIT_mknod 10 ! #define AUDIT_truncate 11 ! #define AUDIT_ftruncate 12 ! #define AUDIT_chroot 13 ! #define AUDIT_execve 14 ! #define AUDIT_exit 15 ! #define AUDIT_setuid 16 ! #define AUDIT_setreuid 17 ! #define AUDIT_setresuid 18 ! #define AUDIT_setgid 19 ! #define AUDIT_setregid 20 ! #define AUDIT_setresgid 21 ! #define AUDIT_create_module 22 ! #define AUDIT_delete_module 23 ! #define AUDIT_reboot 24 ! #define AUDIT_connect 25 ! #define AUDIT_accept 26 ! #define AUDIT_mount 27 ! #define AUDIT_umount 28 ! #define AUDIT_fork 29 ! ! // Size of the bitmask array that we need to store the information ! // associated with whether an audit event is currently turned on. ! #define MAXAUDIT AUDIT_fork ! ! // ioctl modes - note that '1' doesnt seem to work. Added 10. ! #define AUDIT_STOP 10 // stop auditing ! #define AUDIT_START 11 // start auditing ! #define AUDIT_INFO 12 // Give me a list of events ! // currently active, and other ! // info such as the process ID ! #define AUDIT_LOSTEVENTS 13 ! #define AUDIT_FLUSH 14 // Stop all events. ! #define AUDIT_EVENT_ON 15 // Turn on a selected event ! #define AUDIT_EVENT_OFF 16 // Turn off a selected event ! #define AUDIT_DELIVERY 17 // Do we want to guarantee audit event delivery ! #define AUDIT_TOTALEVENTS 18 // How many events have been received this session? ! ! #define AUDIT_HIGHWATERMARK_MEM 19 // Set the High Water Mark memory usage ! #define AUDIT_HIGHWATERMARK_PER 20 // Set the High Water Mark memory as a percentage mem. ! #define AUDIT_HIGHWATERMARK_PAUSE 21 // Set the High Water Mark pause percetage ! #define AUDIT_LOWWATERMARK_PAUSE 22 // Set the Low Water Mark to resume ! #define AUDIT_HIGHWATERMARK_NICE 23 // Set the High Water Mark to change nice value ! #define AUDIT_LOWWATERMARK_NICE 24 // Set the Low Water Mark to restore nice value ! #define AUDIT_HIGHWATER_NICE_VAL 25 // The nice value to change the audit daemon to ! #define AUDIT_CLASS_NONE 0 ! #define AUDIT_CLASS_IO 1 // Input/output (file opens) ! #define AUDIT_CLASS_PC 2 // Process Control ! #define AUDIT_CLASS_EXEC 3 // Execution ! #define AUDIT_CLASS_NET 4 // Network related ! #define AUDIT_CLASS_ADMIN 5 // Administrative events ! #define AUDIT_CLASS_CH 6 // CHMOD event. Might not use this for anything else. ! #define AUDIT_CLASS_CP 7 // Where more than one pathname is required ! #define AUDIT_CLASS_SU 8 // SetUID ! #define AUDIT_CLASS_AD 9 // Admin such as create/delete module ! ! #define SNAREAUDIT_MAJOR_VERSION 0 ! #define SNAREAUDIT_MINOR_VERSION 9 ! #define SNAREAUDIT_PATCH_VERSION 6 ! ! ! // /proc entry ! #define AUDITDEV_NAME "audit" // device name in /dev and /proc/devices ! #define AUDITINFO_NAME "auditinfo" // Information about the process ! #define AUDITDEV_FILE "/proc/audit" // full file name ! #define AUDITINFO_FILE "/proc/auditinfo" // Information about the process. ! #define MAX_PATH 512 // NOTE: will migrgate this to PATH_MAX eventually ! #define MAXCOMMAND 25 ! ! ! // This contains the details that are common to ALL audit events. ! typedef struct ! { ! unsigned short event_class; // event class. Each class has a predictable format for tokens. ! unsigned short event_id; // number of the event ! unsigned short event_size; // size of the event struct - don't include header ! // since it's always the same ! struct timeval time; // time ! ! int user_id; // User ID ! int euser_id; // Effective User ID ! int group_id; // Group ID ! int egroup_id; // Effective Group ID ! ! int returncode; // Make sure that this is big enough to contain the largest returncode. ! ! pid_t pid; // process ID. ! pid_t ppid; // Parent process ID. ! char processname[MAXCOMMAND]; // Same as in /usr/include/linux/sched.h for current->comm ! } header_token; ! ! typedef struct ! { ! char path[MAX_PATH]; ! } path_token; ! ! typedef struct ! { ! int mode; // How the file was attempted to be opened or created ! unsigned long createmode; // Flags associated with the file creation. Ulong for mknod. ! } attributes_token; ! ! typedef struct ! { ! int owner; // new owner of a file - was uid_t, but these are different between kernel and user. ! int group; // new group of a file ! } owner_token; ! ! typedef struct ! { ! char args[MAX_PATH]; // Should really allocate more here. Whats is the max command line size? ! } execargs_token; ! ! // System calls like setuid ! typedef struct ! { ! int id; // uid/gid/euid depending on the call ! int rid; // ruid/rgid ! int sid; // suid/sgid ! } target_token; ! ! // Network connections ! typedef struct ! { ! char src_ip[40]; // String containing source dotted ip address - 40 bytes, for IPv6 ! int src_port; // Source port ! char dst_ip[40]; // String containing destination dotted ip address - 40 bytes, for IPv6 ! int dst_port; // Destination port ! int protocol; // Protocol type - IPPROTO_UDP or IPPROTO_TCP ! } connection_token; ! ! ! ! // Now for the audit event classes ! ! // Just a bare class with the minimal data ! // note that this will mean that EVERY class must start with header_token ! typedef struct ! { ! header_token t_header; ! } null_class; ! ! ! // NOTE: ANY CLASS STRUCTURE SHOULD HAVE THE RETURN TOKEN AS THE SECOND ELEMENT. ! // SEE AUDITD FOR MORE INFO. ! // io - reads/writes ! typedef struct ! { ! header_token t_header; ! path_token t_path; ! path_token t_pwd; // Working directory ! attributes_token t_attributes; ! } io_class; ! ! typedef struct ! { ! header_token t_header; ! path_token t_path; ! path_token t_pwd; // Working directory ! owner_token t_owner; ! } ch_class; ! ! typedef struct ! { ! header_token t_header; ! path_token t_path; ! path_token t_pwd; // Working directory ! execargs_token t_execargs; ! // environment variables too? ! } ex_class; ! ! typedef struct ! { ! header_token t_header; ! } pc_class; ! ! // copy one file to another (amongst others - eg: symlink) ! typedef struct ! { ! header_token t_header; ! path_token t_sourcepath; ! path_token t_pwd; // Working directory ! path_token t_destpath; ! } cp_class; ! ! typedef struct ! { ! header_token t_header; ! target_token t_target; // target UID or GID.. I really only need a single value here. ! } su_class; ! ! typedef struct ! { ! header_token t_header; ! connection_token t_connection; ! } nt_class; // Network ! ! typedef struct ! { ! header_token t_header; ! path_token t_name; // Name of the module loaded / removed ! } ad_class; // General Administrative ! ! struct _auditnode ! { ! void * location; // Location in RAM of the allocated chunk ! int size; // Size of the chunk ! struct _auditnode *next; // Next node in the series. }; ! typedef struct _auditnode AuditNode; #ifdef __KERNEL__ ! #include ! int _c2_audit_mknod(const char * kfile, const char * ufile, int mode, dev_t dev, int retval); ! int _c2_audit_execve(const char * kfilename, const char * ufilename, char *arguments, int retval); ! // _Add this back in.. ! // _char *c2_audit_copy_exec_strings(char **argv); ! int _c2_audit_exit(int retval); ! int _c2_audit_fork(int retval); ! int _c2_audit_open(const char * kfile,const char *ufile, int flags, int mode, int retval); ! int _c2_audit_mkdir(const char * kfile, const char * ufile, int mode, int retval); ! int _c2_audit_unlink(const char * kfile,const char * ufile, int retval); ! int _c2_audit_rmdir(const char * kfile, const char * ufile, int retval); ! int _c2_audit_chown(const char * kfile,const char * ufile, uid_t user, gid_t group, int retval); ! int _c2_audit_chmod(const char * kfile, const char * ufile, mode_t mode, int retval); ! int _c2_audit_symlink(const char * kfrom,const char * ufrom, const char * kto,const char * uto, int retval); ! int _c2_audit_link(const char * kfrom,const char * ufrom, const char * kto,const char * uto, int retval); ! int _c2_audit_rename(const char * kfrom,const char * ufrom, const char * kto, const char * uto, int retval); ! int _c2_audit_truncate(const char * kfile,const char * ufile, loff_t length, int retval); ! int _c2_audit_ftruncate(const char * file, loff_t length, int retval); ! int _c2_audit_chroot(const char * kfile, const char * ufile, int retval); ! int _c2_audit_setuid(uid_t uid, int retval); ! int _c2_audit_setreuid(uid_t ruid, uid_t euid, int retval); ! int _c2_audit_setresuid(uid_t ruid, uid_t euid, uid_t suid, int retval); ! int _c2_audit_setgid(gid_t gid, int retval); ! int _c2_audit_setregid(gid_t rgid, gid_t egid, int retval); ! int _c2_audit_setresgid(gid_t rgid, gid_t egid, gid_t sgid, int retval); ! int _c2_audit_create_module(const char * kname, const char * uname, int retval); ! int _c2_audit_delete_module(const char * kname, const char * uname, int retval); ! int _c2_audit_reboot(int magic1, int magic2, unsigned int cmd, void * arg, int retval); ! int _c2_audit_connect(int sockfd, struct sockaddr *serv_addr, int addrlen, int retval); ! int _c2_audit_accept(int sockfd, struct sockaddr *serv_addr, int *addrlen, int retval); ! int _c2_audit_mount(const char *kdev_name, const char *udev_name, const char *kdir_name, const char *udir_name, unsigned long flags, int retval); ! int _c2_audit_umount(const char *kname, const char *uname, int flags, int retval); ! ! void c2_audit_init(void); ! char * c2_audit_copy_argv(char **argv); ! ! extern int AUDIT_IS_RUNNING; ! ! // Inline routines in order to speed things up a little. ! static inline int c2_audit_mknod(const char * kfile, const char * ufile, int mode, dev_t dev, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_mknod(kfile,ufile,mode,dev,retval)); ! else ! return(0); ! } ! static inline int c2_audit_execve(const char * kfilename, const char * ufilename, char *arguments, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_execve(kfilename,ufilename,arguments,retval)); ! else ! return(0); ! } ! static inline int c2_audit_exit(int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_exit(retval)); ! else ! return(0); ! } ! static inline int c2_audit_fork(int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_fork(retval)); ! else ! return(0); ! } ! static inline int c2_audit_open(const char * kfile,const char *ufile, int flags, int mode, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_open(kfile,ufile,flags,mode,retval)); ! else ! return(0); ! } ! static inline int c2_audit_mkdir(const char * kfile, const char * ufile, int mode, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_mkdir(kfile,ufile,mode,retval)); ! else ! return(0); ! } ! static inline int c2_audit_unlink(const char * kfile,const char * ufile, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_unlink(kfile,ufile,retval)); ! else ! return(0); ! } ! static inline int c2_audit_rmdir(const char * kfile, const char * ufile, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_rmdir(kfile,ufile,retval)); ! else ! return(0); ! } ! static inline int c2_audit_chown(const char * kfile,const char * ufile, uid_t user, gid_t group, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_chown(kfile,ufile,user,group,retval)); ! else ! return(0); ! } ! static inline int c2_audit_chmod(const char * kfile, const char * ufile, mode_t mode, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_chmod(kfile,ufile,mode,retval)); ! else ! return(0); ! } ! static inline int c2_audit_symlink(const char * kfrom,const char * ufrom, const char * kto,const char * uto, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_symlink(kfrom,ufrom,kto,uto,retval)); ! else ! return(0); ! } ! static inline int c2_audit_link(const char * kfrom,const char * ufrom, const char * kto,const char * uto, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_link(kfrom,ufrom,kto,uto,retval)); ! else ! return(0); ! } ! static inline int c2_audit_rename(const char * kfrom,const char * ufrom, const char * kto, const char * uto, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_rename(kfrom,ufrom,kto,uto,retval)); ! else ! return(0); ! } ! static inline int c2_audit_truncate(const char * kfile,const char * ufile, loff_t length, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_truncate(kfile,ufile,length,retval)); ! else ! return(0); ! } ! static inline int c2_audit_ftruncate(const char * file, loff_t length, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_ftruncate(file,length,retval)); ! else ! return(0); ! } ! static inline int c2_audit_chroot(const char * kfile, const char * ufile, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_chroot(kfile,ufile,retval)); ! else ! return(0); ! } ! static inline int c2_audit_setuid(uid_t uid, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_setuid(uid,retval)); ! else ! return(0); ! } ! static inline int c2_audit_setreuid(uid_t ruid, uid_t euid, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_setreuid(ruid,euid,retval)); ! else ! return(0); ! } ! static inline int c2_audit_setresuid(uid_t ruid, uid_t euid, uid_t suid, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_setresuid(ruid,euid,suid,retval)); ! else ! return(0); ! } ! static inline int c2_audit_setgid(gid_t gid, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_setgid(gid,retval)); ! else ! return(0); ! } ! static inline int c2_audit_setregid(gid_t rgid, gid_t egid, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_setregid(rgid,egid,retval)); ! else ! return(0); ! } ! static inline int c2_audit_setresgid(gid_t rgid, gid_t egid, gid_t sgid, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_setresgid(rgid,egid,sgid,retval)); ! else ! return(0); ! } ! static inline int c2_audit_create_module(const char * kname, const char * uname, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_create_module(kname,uname,retval)); ! else ! return(0); ! } ! static inline int c2_audit_delete_module(const char * kname, const char * uname, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_delete_module(kname,uname,retval)); ! else ! return(0); ! } ! static inline int c2_audit_reboot(int magic1, int magic2, unsigned int cmd, void * arg, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_reboot(magic1,magic2,cmd,arg,retval)); ! else ! return(0); ! } ! static inline int c2_audit_connect(int sockfd, struct sockaddr *serv_addr, int addrlen, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_connect(sockfd,serv_addr,addrlen,retval)); ! else ! return(0); ! } ! static inline int c2_audit_accept(int sockfd, struct sockaddr *serv_addr, int *addrlen, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_accept(sockfd,serv_addr,addrlen,retval)); ! else ! return(0); ! } ! static inline int c2_audit_mount(const char *kdev_name, const char *udev_name, const char *kdir_name, const char *udir_name, unsigned long flags, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_mount(kdev_name,udev_name,kdir_name,udir_name,flags,retval)); ! else ! return(0); ! } ! static inline int c2_audit_umount(const char *kname, const char *uname, int flags, int retval) { ! if (unlikely(AUDIT_IS_RUNNING)) ! return (_c2_audit_umount(kname,uname,flags,retval)); ! else ! return(0); ! } #endif /* __KERNEL__ */ ! #else /* CONFIG_C2_AUDIT */ ! ! #ifdef __KERNEL__ ! static inline int c2_audit_mknod(const char * kfile, const char * ufile, int mode, dev_t dev, int retval) {return(0);} ! static inline char * c2_audit_copy_argv(char **argv) {return(0);} ! static inline int c2_audit_execve(const char * kfilename, const char * ufilename, char *arguments, int retval) {return(0);} ! static inline int c2_audit_exit(int retval) {return(0);} ! static inline int c2_audit_fork(int retval) {return(0);} ! static inline int c2_audit_open(const char * kfile,const char *ufile, int flags, int mode, int retval) {return(0);} ! static inline int c2_audit_mkdir(const char * kfile, const char * ufile, int mode, int retval) {return(0);} ! static inline int c2_audit_unlink(const char * kfile,const char * ufile, int retval) {return(0);} ! static inline int c2_audit_rmdir(const char * kfile, const char * ufile, int retval) {return(0);} ! static inline int c2_audit_chown(const char * kfile,const char * ufile, uid_t user, gid_t group, int retval) {return(0);} ! static inline int c2_audit_chmod(const char * kfile, const char * ufile, mode_t mode, int retval) {return(0);} ! static inline int c2_audit_symlink(const char * kfrom,const char * ufrom, const char * kto,const char * uto, int retval) {return(0);} ! static inline int c2_audit_link(const char * kfrom,const char * ufrom, const char * kto,const char * uto, int retval) {return(0);} ! static inline int c2_audit_rename(const char * kfrom,const char * ufrom, const char * kto, const char * uto, int retval) {return(0);} ! static inline int c2_audit_truncate(const char * kfile,const char * ufile, loff_t length, int retval) {return(0);} ! static inline int c2_audit_ftruncate(const char * file, loff_t length, int retval) {return(0);} ! static inline int c2_audit_chroot(const char * kfile, const char * ufile, int retval) {return(0);} ! static inline int c2_audit_setuid(uid_t uid, int retval) {return(0);} ! static inline int c2_audit_setreuid(uid_t ruid, uid_t euid, int retval) {return(0);} ! static inline int c2_audit_setresuid(uid_t ruid, uid_t euid, uid_t suid, int retval) {return(0);} ! static inline int c2_audit_setgid(gid_t gid, int retval) {return(0);} ! static inline int c2_audit_setregid(gid_t rgid, gid_t egid, int retval) {return(0);} ! static inline int c2_audit_setresgid(gid_t rgid, gid_t egid, gid_t sgid, int retval) {return(0);} ! static inline int c2_audit_create_module(const char * kname, const char * uname, int retval) {return(0);} ! static inline int c2_audit_delete_module(const char * kname, const char * uname, int retval) {return(0);} ! static inline int c2_audit_reboot(int magic1, int magic2, unsigned int cmd, void * arg, int retval) {return(0);} ! static inline int c2_audit_connect(int sockfd, struct sockaddr *serv_addr, int addrlen, int retval) {return(0);} ! static inline int c2_audit_accept(int sockfd, struct sockaddr *serv_addr, int *addrlen, int retval) {return(0);} ! static inline int c2_audit_mount(const char *kdev_name, const char *udev_name, const char *kdir_name, const char *udir_name, unsigned long flags, int retval) {return(0);} ! static inline int c2_audit_umount(const char *kname, const char *uname, int flags, int retval) {return(0);} ! #endif /* KERNEL */ ! #endif /* CONFIG_C2_AUDIT */ ! #endif /* __C2_AUDIT_H */ Only in linux-2.4.21-99/include/linux: autoconf.h Only in linux-2.4.21-99/include/linux: modules diff -cr linux-2.4.21-99/include/linux/sched.h linux-2.4.21-99-Snare/include/linux/sched.h *** linux-2.4.21-99/include/linux/sched.h Wed Sep 24 06:47:28 2003 --- linux-2.4.21-99-Snare/include/linux/sched.h Thu Oct 21 12:46:02 2004 *************** *** 458,463 **** --- 458,468 ---- #if defined(CONFIG_AUDIT) || defined(CONFIG_AUDIT_MODULE) void *audit; #endif /* CONFIG_AUDIT */ + + #ifdef CONFIG_C2_AUDIT + /* Audit record pointer */ + void *audit_record; + #endif }; /* Only in linux-2.4.21-99/include/linux: version.h diff -cr linux-2.4.21-99/init/main.c linux-2.4.21-99-Snare/init/main.c *** linux-2.4.21-99/init/main.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/init/main.c Wed Oct 20 21:23:49 2004 *************** *** 28,33 **** --- 28,34 ---- #include #include #include + #include #include #include *************** *** 121,127 **** extern void ipc_init(void); #endif - #if defined(CONFIG_DUMP) dump_init(); #endif --- 122,127 ---- *************** *** 498,503 **** --- 498,507 ---- #ifdef CONFIG_PROC_FS proc_root_init(); #endif + + #if defined(CONFIG_C2_AUDIT) + c2_audit_init(); + #endif check_bugs(); printk("POSIX conformance testing by UNIFIX\n"); diff -cr linux-2.4.21-99/kernel/exit.c linux-2.4.21-99-Snare/kernel/exit.c *** linux-2.4.21-99/kernel/exit.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/kernel/exit.c Wed Oct 20 20:28:01 2004 *************** *** 13,18 **** --- 13,19 ---- #include #include #include + #include #ifdef CONFIG_BSD_PROCESS_ACCT #include #endif *************** *** 563,568 **** --- 564,570 ---- asmlinkage long sys_exit(int error_code) { + c2_audit_exit(error_code); do_exit((error_code&0xff)<<8); } diff -cr linux-2.4.21-99/kernel/fork.c linux-2.4.21-99-Snare/kernel/fork.c *** linux-2.4.21-99/kernel/fork.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/kernel/fork.c Wed Oct 20 20:27:26 2004 *************** *** 21,26 **** --- 21,27 ---- #include #include #include + #include #include #include *************** *** 731,741 **** struct pt_regs *regs, unsigned long stack_size) { int retval; struct task_struct *p; struct completion vfork; ! if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS)) return -EINVAL; retval = -EPERM; --- 732,748 ---- struct pt_regs *regs, unsigned long stack_size) { int retval; + #ifdef CONFIG_C2_AUDIT + int auditretval=0; + #endif + struct task_struct *p; struct completion vfork; ! if ((clone_flags & (CLONE_NEWNS|CLONE_FS)) == (CLONE_NEWNS|CLONE_FS)) { ! c2_audit_fork(-1); return -EINVAL; + } retval = -EPERM; *************** *** 760,765 **** --- 767,775 ---- #if defined(CONFIG_AUDIT) || defined(CONFIG_AUDIT_MODULE) p->audit = NULL; #endif + #if defined(CONFIG_C2_AUDIT) + p->audit_record = NULL; + #endif retval = -EAGAIN; /* *************** *** 931,936 **** --- 941,949 ---- hash_pid(p); nr_threads++; write_unlock_irq(&tasklist_lock); + #ifdef CONFIG_C2_AUDIT + auditretval = 0; + #endif if (p->ptrace & PT_PTRACED) send_sig(SIGSTOP, p, 1); *************** *** 957,962 **** --- 970,982 ---- current->need_resched = 1; fork_out: + #ifdef CONFIG_C2_AUDIT + if (auditretval == -1) + c2_audit_fork(-1); + else + c2_audit_fork(p->pid); + #endif + return retval; bad_fork_cleanup_namespace: *************** *** 981,986 **** --- 1001,1009 ---- free_uid(p->user); bad_fork_free: free_task_struct(p); + #ifdef CONFIG_C2_AUDIT + auditretval = -1; + #endif goto fork_out; } diff -cr linux-2.4.21-99/kernel/module.c linux-2.4.21-99-Snare/kernel/module.c *** linux-2.4.21-99/kernel/module.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/kernel/module.c Wed Oct 20 20:12:34 2004 *************** *** 11,16 **** --- 11,17 ---- #include #include #include + #include #ifdef CONFIG_DPROBES_CORE #include #include *************** *** 308,319 **** struct module *mod; unsigned long flags; ! if (!capable(CAP_SYS_MODULE)) return -EPERM; down(&module_mutex); lock_kernel(); if ((namelen = get_mod_name(name_user, &name)) < 0) { error = namelen; goto err0; } if (size < sizeof(struct module)+namelen+1) { --- 309,324 ---- struct module *mod; unsigned long flags; ! if (!capable(CAP_SYS_MODULE)) { ! c2_audit_create_module((char *)NULL,name_user,-EPERM); return -EPERM; + } + down(&module_mutex); lock_kernel(); if ((namelen = get_mod_name(name_user, &name)) < 0) { error = namelen; + c2_audit_create_module((char *)NULL,name_user,error); goto err0; } if (size < sizeof(struct module)+namelen+1) { *************** *** 335,350 **** mod->size = size; memcpy((char*)(mod+1), name, namelen+1); - put_mod_name(name); - spin_lock_irqsave(&modlist_lock, flags); mod->next = module_list; module_list = mod; /* link it in */ spin_unlock_irqrestore(&modlist_lock, flags); error = (long) mod; goto err0; err1: put_mod_name(name); err0: unlock_kernel(); --- 340,356 ---- mod->size = size; memcpy((char*)(mod+1), name, namelen+1); spin_lock_irqsave(&modlist_lock, flags); mod->next = module_list; module_list = mod; /* link it in */ spin_unlock_irqrestore(&modlist_lock, flags); error = (long) mod; + c2_audit_create_module(name,(char *)NULL,error); + put_mod_name(name); goto err0; err1: + c2_audit_create_module(name,(char *)NULL,error); put_mod_name(name); err0: unlock_kernel(); *************** *** 364,371 **** unsigned long mod_user_size, flags; struct module_ref *dep; ! if (!capable(CAP_SYS_MODULE)) return -EPERM; down(&module_mutex); lock_kernel(); if ((namelen = get_mod_name(name_user, &name)) < 0) { --- 370,379 ---- unsigned long mod_user_size, flags; struct module_ref *dep; ! if (!capable(CAP_SYS_MODULE)) { ! c2_audit_delete_module((char *)NULL,name_user,-EPERM); return -EPERM; + } down(&module_mutex); lock_kernel(); if ((namelen = get_mod_name(name_user, &name)) < 0) { *************** *** 642,649 **** down(&module_mutex); lock_kernel(); if (name_user) { ! if ((error = get_mod_name(name_user, &name)) < 0) goto out; error = -ENOENT; if ((mod = find_module(name)) == NULL) { put_mod_name(name); --- 650,658 ---- down(&module_mutex); lock_kernel(); if (name_user) { ! if ((error = get_mod_name(name_user, &name)) < 0) { goto out; + } error = -ENOENT; if ((mod = find_module(name)) == NULL) { put_mod_name(name); *************** *** 651,658 **** } put_mod_name(name); error = -EBUSY; ! if (mod->refs != NULL) goto out; spin_lock(&unload_lock); if (!__MOD_IN_USE(mod)) { --- 660,668 ---- } put_mod_name(name); error = -EBUSY; ! if (mod->refs != NULL) { goto out; + } spin_lock(&unload_lock); if (!__MOD_IN_USE(mod)) { *************** *** 703,708 **** --- 713,719 ---- error = 0; out: unlock_kernel(); + c2_audit_delete_module((char *)NULL,name_user,error); up(&module_mutex); return error; } diff -cr linux-2.4.21-99/kernel/sys.c linux-2.4.21-99-Snare/kernel/sys.c *** linux-2.4.21-99/kernel/sys.c Wed Sep 24 06:47:27 2003 --- linux-2.4.21-99-Snare/kernel/sys.c Wed Oct 20 20:13:18 2004 *************** *** 14,19 **** --- 14,20 ---- #include #include #include + #include #include #if defined(CONFIG_DUMP) || defined(CONFIG_DUMP_MODULE) #include *************** *** 372,385 **** char buffer[256]; /* We only trust the superuser with rebooting the system. */ ! if (!capable(CAP_SYS_BOOT)) return -EPERM; /* For safety, we require "magic" arguments. */ if (magic1 != LINUX_REBOOT_MAGIC1 || (magic2 != LINUX_REBOOT_MAGIC2 && magic2 != LINUX_REBOOT_MAGIC2A && ! magic2 != LINUX_REBOOT_MAGIC2B)) return -EINVAL; lock_kernel(); switch (cmd) { --- 373,393 ---- char buffer[256]; /* We only trust the superuser with rebooting the system. */ ! if (!capable(CAP_SYS_BOOT)) { ! c2_audit_reboot(magic1,magic2,cmd,arg,-EPERM); return -EPERM; + } /* For safety, we require "magic" arguments. */ if (magic1 != LINUX_REBOOT_MAGIC1 || (magic2 != LINUX_REBOOT_MAGIC2 && magic2 != LINUX_REBOOT_MAGIC2A && ! magic2 != LINUX_REBOOT_MAGIC2B)) { ! c2_audit_reboot(magic1,magic2,cmd,arg,-EINVAL); return -EINVAL; + } + + // Try and audit before we go down. + c2_audit_reboot(magic1,magic2,cmd,arg,0); lock_kernel(); switch (cmd) { *************** *** 485,492 **** (current->egid==rgid) || capable(CAP_SETGID)) new_rgid = rgid; ! else return -EPERM; } if (egid != (gid_t) -1) { if ((old_rgid == egid) || --- 493,502 ---- (current->egid==rgid) || capable(CAP_SETGID)) new_rgid = rgid; ! else { ! c2_audit_setregid(rgid,egid,-EPERM); return -EPERM; + } } if (egid != (gid_t) -1) { if ((old_rgid == egid) || *************** *** 495,500 **** --- 505,511 ---- capable(CAP_SETGID)) new_egid = egid; else { + c2_audit_setregid(rgid,egid,-EPERM); return -EPERM; } } *************** *** 510,515 **** --- 521,528 ---- current->fsgid = new_egid; current->egid = new_egid; current->gid = new_rgid; + + c2_audit_setregid(rgid,egid,0); return 0; } *************** *** 524,529 **** --- 537,543 ---- if (capable(CAP_SETGID)) { + c2_audit_setgid(gid,0); RMGT_PROC_SETRGID(current, current->gid, gid); if(old_egid != gid) { *************** *** 534,539 **** --- 548,554 ---- } else if ((gid == current->gid) || (gid == current->sgid)) { + c2_audit_setgid(gid,0); if(old_egid != gid) { current->mm->dumpable=0; *************** *** 541,548 **** } current->egid = current->fsgid = gid; } ! else return -EPERM; return 0; } --- 556,566 ---- } current->egid = current->fsgid = gid; } ! else { ! c2_audit_setgid(gid,-EPERM); return -EPERM; + } + c2_audit_setgid(gid,0); return 0; } *************** *** 647,654 **** new_ruid = ruid; if ((old_ruid != ruid) && (current->euid != ruid) && ! !capable(CAP_SETUID)) return -EPERM; } if (euid != (uid_t) -1) { --- 665,674 ---- new_ruid = ruid; if ((old_ruid != ruid) && (current->euid != ruid) && ! !capable(CAP_SETUID)) { ! c2_audit_setreuid(ruid,euid,-EPERM); return -EPERM; + } } if (euid != (uid_t) -1) { *************** *** 656,668 **** if ((old_ruid != euid) && (current->euid != euid) && (current->suid != euid) && ! !capable(CAP_SETUID)) return -EPERM; } if ((new_ruid != old_ruid) && ! ((result = set_user(new_ruid, new_euid != old_euid)) < 0)) return result; if (new_euid != old_euid) { --- 676,694 ---- if ((old_ruid != euid) && (current->euid != euid) && (current->suid != euid) && ! !capable(CAP_SETUID)) { ! c2_audit_setreuid(ruid,euid,-EPERM); return -EPERM; + } } if ((new_ruid != old_ruid) && ! ((result = set_user(new_ruid, new_euid != old_euid)) < 0)) { ! c2_audit_setreuid(ruid,euid,-EAGAIN); return result; + } + + c2_audit_setreuid(ruid,euid,0); // Before current->*id is changed if (new_euid != old_euid) { *************** *** 706,716 **** if (capable(CAP_SETUID)) { if ((uid != old_ruid) && ! ((result = set_user(uid, old_euid != uid)) < 0)) return result; new_suid = uid; ! } else if ((uid != current->uid) && (uid != new_suid)) return -EPERM; if (old_euid != uid) { --- 732,748 ---- if (capable(CAP_SETUID)) { if ((uid != old_ruid) && ! ((result = set_user(uid, old_euid != uid)) < 0)) { ! c2_audit_setuid(uid,-EAGAIN); return result; + } new_suid = uid; ! } else if ((uid != current->uid) && (uid != new_suid)) { ! c2_audit_setuid(uid,-EPERM); return -EPERM; + } + + c2_audit_setuid(uid,0); // Before current->*id is changed if (old_euid != uid) { *************** *** 741,760 **** if (!capable(CAP_SETUID)) { if ((ruid != (uid_t) -1) && (ruid != current->uid) && ! (ruid != current->euid) && (ruid != current->suid)) return -EPERM; if ((euid != (uid_t) -1) && (euid != current->uid) && ! (euid != current->euid) && (euid != current->suid)) return -EPERM; if ((suid != (uid_t) -1) && (suid != current->uid) && ! (suid != current->euid) && (suid != current->suid)) return -EPERM; } if (ruid != (uid_t) -1) { if ((ruid != current->uid) && ! ((result = set_user(ruid, euid != current->euid)) < 0)) return result; } if (euid != (uid_t) -1) { if (euid != current->euid) { --- 773,803 ---- if (!capable(CAP_SETUID)) { if ((ruid != (uid_t) -1) && (ruid != current->uid) && ! (ruid != current->euid) && (ruid != current->suid)) { ! c2_audit_setresuid(ruid,euid,suid,-EPERM); return -EPERM; + } if ((euid != (uid_t) -1) && (euid != current->uid) && ! (euid != current->euid) && (euid != current->suid)) { ! c2_audit_setresuid(ruid,euid,suid,-EPERM); return -EPERM; + } if ((suid != (uid_t) -1) && (suid != current->uid) && ! (suid != current->euid) && (suid != current->suid)) { ! c2_audit_setresuid(ruid,euid,suid,-EPERM); return -EPERM; + } } if (ruid != (uid_t) -1) { if ((ruid != current->uid) && ! ((result = set_user(ruid, euid != current->euid)) < 0)) { ! c2_audit_setresuid(ruid,euid,suid,-EAGAIN); return result; + } } + + c2_audit_setresuid(ruid,euid,suid,0); // Before current->uids change + if (euid != (uid_t) -1) { if (euid != current->euid) { *************** *** 792,806 **** { if (!capable(CAP_SETGID)) { if ((rgid != (gid_t) -1) && (rgid != current->gid) && ! (rgid != current->egid) && (rgid != current->sgid)) return -EPERM; if ((egid != (gid_t) -1) && (egid != current->gid) && ! (egid != current->egid) && (egid != current->sgid)) return -EPERM; if ((sgid != (gid_t) -1) && (sgid != current->gid) && ! (sgid != current->egid) && (sgid != current->sgid)) return -EPERM; } RMGT_PROC_SETRGID(current, current->gid, rgid); if (egid != (gid_t) -1) { if (egid != current->egid) --- 835,858 ---- { if (!capable(CAP_SETGID)) { if ((rgid != (gid_t) -1) && (rgid != current->gid) && ! (rgid != current->egid) && (rgid != current->sgid)) { ! c2_audit_setresgid(rgid,egid,sgid,-EPERM); return -EPERM; + } if ((egid != (gid_t) -1) && (egid != current->gid) && ! (egid != current->egid) && (egid != current->sgid)) { ! c2_audit_setresgid(rgid,egid,sgid,-EPERM); return -EPERM; + } if ((sgid != (gid_t) -1) && (sgid != current->gid) && ! (sgid != current->egid) && (sgid != current->sgid)) { ! c2_audit_setresgid(rgid,egid,sgid,-EPERM); return -EPERM; + } } + + c2_audit_setresgid(rgid,egid,sgid,0); // Before our current process UIDs change + RMGT_PROC_SETRGID(current, current->gid, rgid); if (egid != (gid_t) -1) { if (egid != current->egid) diff -cr linux-2.4.21-99/net/socket.c linux-2.4.21-99-Snare/net/socket.c *** linux-2.4.21-99/net/socket.c Wed Sep 24 06:47:32 2003 --- linux-2.4.21-99-Snare/net/socket.c Wed Oct 20 20:13:27 2004 *************** *** 45,50 **** --- 45,51 ---- * Tigran Aivazian : Made listen(2) backlog sanity checks * protocol-independent * Benjamin LaHaise: real aio support. + * Leigh Purdie : Socketcall auditing. * * * This program is free software; you can redistribute it and/or *************** *** 75,80 **** --- 76,82 ---- #include #include #include + #include #include *************** *** 1622,1633 **** --- 1624,1637 ---- break; case SYS_CONNECT: err = sys_connect(a0, (struct sockaddr *)a1, a[2]); + c2_audit_connect(a0, (struct sockaddr *)a1, a[2],err); break; case SYS_LISTEN: err = sys_listen(a0,a1); break; case SYS_ACCEPT: err = sys_accept(a0,(struct sockaddr *)a1, (int *)a[2]); + c2_audit_accept(a0, (struct sockaddr *)a1, (int *)a[2],err); break; case SYS_GETSOCKNAME: err = sys_getsockname(a0,(struct sockaddr *)a1, (int *)a[2]); diff -cr linux-2.4.21-99/sound/usb/usbaudio.c linux-2.4.21-99-Snare/sound/usb/usbaudio.c *** linux-2.4.21-99/sound/usb/usbaudio.c Wed Sep 24 06:48:17 2003 --- linux-2.4.21-99-Snare/sound/usb/usbaudio.c Thu Oct 21 13:03:56 2004 *************** *** 2942,2948 **** --- 2942,2950 ---- if (nr_dev >= SNDRV_CARDS) return 0; (void)(get_option(&str, &enable[nr_dev]) == 2 && + #define index snd_index get_option(&str, &index[nr_dev]) == 2 && + #undef index get_id(&str, &id[nr_dev]) == 2 && get_option(&str, &vid[nr_dev]) == 2 && get_option(&str, &pid[nr_dev]) == 2);