From: Helge Deller <deller@gmx.de>
To: linux-audit@redhat.com
Subject: Re: [PATCH] audit/userspace: add support for the parisc architecture
Date: Wed, 20 Nov 2013 21:16:38 +0100 [thread overview]
Message-ID: <528D18A6.2010508@gmx.de> (raw)
In-Reply-To: <20131015175640.GA1247@p100.box>
Any chance this patch can be applied to SVN ?
The Linux kernel patch for parisc itself is already upstream...
Thanks,
Helge
On 10/15/2013 07:56 PM, Helge Deller wrote:
> The patch below adds support for the parisc architecture to the audit
> userspace tool.
>
> It would be great if you could apply this patch to trunk.
>
> I posted the corresponding Linux kernel patch to the parisc mailing list
> (https://patchwork.kernel.org/patch/3046731/) and plan to push it upstream when
> the merge window for Linux kernel v3.13 opens.
>
> Signed-off-by: Helge Deller <deller@gmx.de>
>
> --- audit-2.3.2.orig/lib/Makefile.am
> +++ audit-2.3.2/lib/Makefile.am
> @@ -40,7 +40,7 @@ nodist_libaudit_la_SOURCES = $(BUILT_SOU
> BUILT_SOURCES = actiontabs.h errtabs.h fieldtabs.h flagtabs.h \
> ftypetabs.h i386_tables.h ia64_tables.h machinetabs.h \
> msg_typetabs.h optabs.h ppc_tables.h s390_tables.h \
> - s390x_tables.h x86_64_tables.h
> + s390x_tables.h x86_64_tables.h parisc_tables.h
> if USE_ALPHA
> BUILT_SOURCES += alpha_tables.h
> endif
> @@ -54,7 +54,7 @@ noinst_PROGRAMS = gen_actiontabs_h gen_e
> gen_flagtabs_h gen_ftypetabs_h gen_i386_tables_h \
> gen_ia64_tables_h gen_machinetabs_h gen_msg_typetabs_h \
> gen_optabs_h gen_ppc_tables_h gen_s390_tables_h \
> - gen_s390x_tables_h gen_x86_64_tables_h
> + gen_s390x_tables_h gen_x86_64_tables_h gen_parisc_tables_h
> if USE_ALPHA
> noinst_PROGRAMS += gen_alpha_tables_h
> endif
> @@ -142,6 +142,11 @@ gen_ppc_tables_h_CFLAGS = $(AM_CFLAGS) '
> ppc_tables.h: gen_ppc_tables_h Makefile
> ./gen_ppc_tables_h --lowercase --i2s --s2i ppc_syscall > $@
>
> +gen_parisc_tables_h_SOURCES = gen_tables.c gen_tables.h parisc_table.h
> +gen_parisc_tables_h_CFLAGS = $(AM_CFLAGS) '-DTABLE_H="parisc_table.h"'
> +parisc_tables.h: gen_parisc_tables_h Makefile
> + ./gen_parisc_tables_h --lowercase --i2s --s2i parisc_syscall > $@
> +
> gen_s390_tables_h_SOURCES = gen_tables.c gen_tables.h s390_table.h
> gen_s390_tables_h_CFLAGS = $(AM_CFLAGS) '-DTABLE_H="s390_table.h"'
> s390_tables.h: gen_s390_tables_h Makefile
> --- audit-2.3.2.orig/lib/libaudit.c
> +++ audit-2.3.2/lib/libaudit.c
> @@ -1304,6 +1304,9 @@ int audit_rule_fieldpair_data(struct aud
> machine == MACH_PPC64)
> machine = MACH_PPC;
> else if (bits == ~__AUDIT_ARCH_64BIT &&
> + machine == MACH_PARISC64)
> + machine = MACH_PARISC;
> + else if (bits == ~__AUDIT_ARCH_64BIT &&
> machine == MACH_S390X)
> machine = MACH_S390;
>
> @@ -1324,6 +1327,10 @@ int audit_rule_fieldpair_data(struct aud
> if (bits == __AUDIT_ARCH_64BIT)
> return -6;
> break;
> + case MACH_PARISC:
> + if (bits == __AUDIT_ARCH_64BIT)
> + return -6;
> + break;
> case MACH_S390:
> if (bits == __AUDIT_ARCH_64BIT)
> return -6;
> @@ -1342,6 +1349,7 @@ int audit_rule_fieldpair_data(struct aud
> #endif
> case MACH_86_64: /* fallthrough */
> case MACH_PPC64: /* fallthrough */
> + case MACH_PARISC64: /* fallthrough */
> case MACH_S390X: /* fallthrough */
> break;
> default:
> --- audit-2.3.2.orig/lib/libaudit.h
> +++ audit-2.3.2/lib/libaudit.h
> @@ -417,7 +417,9 @@ typedef enum {
> MACH_S390,
> MACH_ALPHA,
> MACH_ARMEB,
> - MACH_AARCH64
> + MACH_AARCH64,
> + MACH_PARISC64,
> + MACH_PARISC
> } machine_t;
>
> /* These are the valid audit failure tunable enum values */
> --- audit-2.3.2.orig/lib/lookup_table.c
> +++ audit-2.3.2/lib/lookup_table.c
> @@ -47,6 +47,7 @@
> #include "i386_tables.h"
> #include "ia64_tables.h"
> #include "ppc_tables.h"
> +#include "parisc_tables.h"
> #include "s390_tables.h"
> #include "s390x_tables.h"
> #include "x86_64_tables.h"
> @@ -82,6 +83,8 @@ static const struct int_transtab elftab[
> #ifdef WITH_AARCH64
> { MACH_AARCH64, AUDIT_ARCH_AARCH64},
> #endif
> + { MACH_PARISC64,AUDIT_ARCH_PARISC64 },
> + { MACH_PARISC, AUDIT_ARCH_PARISC },
> };
> #define AUDIT_ELF_NAMES (sizeof(elftab)/sizeof(elftab[0]))
>
> @@ -126,6 +129,10 @@ int audit_name_to_syscall(const char *sc
> case MACH_PPC:
> found = ppc_syscall_s2i(sc, &res);
> break;
> + case MACH_PARISC64:
> + case MACH_PARISC:
> + found = parisc_syscall_s2i(sc, &res);
> + break;
> case MACH_S390X:
> found = s390x_syscall_s2i(sc, &res);
> break;
> @@ -171,6 +178,9 @@ const char *audit_syscall_to_name(int sc
> case MACH_PPC64:
> case MACH_PPC:
> return ppc_syscall_i2s(sc);
> + case MACH_PARISC64:
> + case MACH_PARISC:
> + return parisc_syscall_i2s(sc);
> case MACH_S390X:
> return s390x_syscall_i2s(sc);
> case MACH_S390:
> --- audit-2.3.2.orig/lib/machinetab.h
> +++ audit-2.3.2/lib/machinetab.h
> @@ -43,3 +43,5 @@ _S(MACH_ARMEB, "armv7l")
> #ifdef WITH_AARCH64
> _S(MACH_AARCH64, "aarch64" )
> #endif
> +_S(MACH_PARISC64, "parisc64" )
> +_S(MACH_PARISC, "parisc" )
> --- /dev/null
> +++ audit-2.3.2/lib/parisc_table.h
> @@ -0,0 +1,333 @@
> +_S(0, "restart_syscall")
> +_S(1, "exit")
> +_S(2, "fork")
> +_S(3, "read")
> +_S(4, "write")
> +_S(5, "open")
> +_S(6, "close")
> +_S(7, "waitpid")
> +_S(8, "creat")
> +_S(9, "link")
> +_S(10, "unlink")
> +_S(11, "execve")
> +_S(12, "chdir")
> +_S(13, "time")
> +_S(14, "mknod")
> +_S(15, "chmod")
> +_S(16, "lchown")
> +_S(17, "socket")
> +_S(18, "stat")
> +_S(19, "lseek")
> +_S(20, "getpid")
> +_S(21, "mount")
> +_S(22, "bind")
> +_S(23, "setuid")
> +_S(24, "getuid")
> +_S(25, "stime")
> +_S(26, "ptrace")
> +_S(27, "alarm")
> +_S(28, "fstat")
> +_S(29, "pause")
> +_S(30, "utime")
> +_S(31, "connect")
> +_S(32, "listen")
> +_S(33, "access")
> +_S(34, "nice")
> +_S(35, "accept")
> +_S(36, "sync")
> +_S(37, "kill")
> +_S(38, "rename")
> +_S(39, "mkdir")
> +_S(40, "rmdir")
> +_S(41, "dup")
> +_S(42, "pipe")
> +_S(43, "times")
> +_S(44, "getsockname")
> +_S(45, "brk")
> +_S(46, "setgid")
> +_S(47, "getgid")
> +_S(48, "signal")
> +_S(49, "geteuid")
> +_S(50, "getegid")
> +_S(51, "acct")
> +_S(52, "umount2")
> +_S(53, "getpeername")
> +_S(54, "ioctl")
> +_S(55, "fcntl")
> +_S(56, "socketpair")
> +_S(57, "setpgid")
> +_S(58, "send")
> +_S(59, "uname")
> +_S(60, "umask")
> +_S(61, "chroot")
> +_S(62, "ustat")
> +_S(63, "dup2")
> +_S(64, "getppid")
> +_S(65, "getpgrp")
> +_S(66, "setsid")
> +_S(67, "pivot_root")
> +_S(68, "sgetmask")
> +_S(69, "ssetmask")
> +_S(70, "setreuid")
> +_S(71, "setregid")
> +_S(72, "mincore")
> +_S(73, "sigpending")
> +_S(74, "sethostname")
> +_S(75, "setrlimit")
> +_S(76, "getrlimit")
> +_S(77, "getrusage")
> +_S(78, "gettimeofday")
> +_S(79, "settimeofday")
> +_S(80, "getgroups")
> +_S(81, "setgroups")
> +_S(82, "sendto")
> +_S(83, "symlink")
> +_S(84, "lstat")
> +_S(85, "readlink")
> +_S(86, "uselib")
> +_S(87, "swapon")
> +_S(88, "reboot")
> +_S(89, "mmap2")
> +_S(90, "mmap")
> +_S(91, "munmap")
> +_S(92, "truncate")
> +_S(93, "ftruncate")
> +_S(94, "fchmod")
> +_S(95, "fchown")
> +_S(96, "getpriority")
> +_S(97, "setpriority")
> +_S(98, "recv")
> +_S(99, "statfs")
> +_S(100, "fstatfs")
> +_S(101, "stat64")
> +_S(103, "syslog")
> +_S(104, "setitimer")
> +_S(105, "getitimer")
> +_S(106, "capget")
> +_S(107, "capset")
> +_S(108, "pread64")
> +_S(109, "pwrite64")
> +_S(110, "getcwd")
> +_S(111, "vhangup")
> +_S(112, "fstat64")
> +_S(113, "vfork")
> +_S(114, "wait4")
> +_S(115, "swapoff")
> +_S(116, "sysinfo")
> +_S(117, "shutdown")
> +_S(118, "fsync")
> +_S(119, "madvise")
> +_S(120, "clone")
> +_S(121, "setdomainname")
> +_S(122, "sendfile")
> +_S(123, "recvfrom")
> +_S(124, "adjtimex")
> +_S(125, "mprotect")
> +_S(126, "sigprocmask")
> +_S(127, "create_module")
> +_S(128, "init_module")
> +_S(129, "delete_module")
> +_S(130, "get_kernel_syms")
> +_S(131, "quotactl")
> +_S(132, "getpgid")
> +_S(133, "fchdir")
> +_S(134, "bdflush")
> +_S(135, "sysfs")
> +_S(136, "personality")
> +_S(137, "afs_syscall")
> +_S(138, "setfsuid")
> +_S(139, "setfsgid")
> +_S(140, "_llseek")
> +_S(141, "getdents")
> +_S(142, "_newselect")
> +_S(143, "flock")
> +_S(144, "msync")
> +_S(145, "readv")
> +_S(146, "writev")
> +_S(147, "getsid")
> +_S(148, "fdatasync")
> +_S(149, "_sysctl")
> +_S(150, "mlock")
> +_S(151, "munlock")
> +_S(152, "mlockall")
> +_S(153, "munlockall")
> +_S(154, "sched_setparam")
> +_S(155, "sched_getparam")
> +_S(156, "sched_setscheduler")
> +_S(157, "sched_getscheduler")
> +_S(158, "sched_yield")
> +_S(159, "sched_get_priority_max")
> +_S(160, "sched_get_priority_min")
> +_S(161, "sched_rr_get_interval")
> +_S(162, "nanosleep")
> +_S(163, "mremap")
> +_S(164, "setresuid")
> +_S(165, "getresuid")
> +_S(166, "sigaltstack")
> +_S(167, "query_module")
> +_S(168, "poll")
> +_S(169, "nfsservctl")
> +_S(170, "setresgid")
> +_S(171, "getresgid")
> +_S(172, "prctl")
> +_S(173, "rt_sigreturn")
> +_S(174, "rt_sigaction")
> +_S(175, "rt_sigprocmask")
> +_S(176, "rt_sigpending")
> +_S(177, "rt_sigtimedwait")
> +_S(178, "rt_sigqueueinfo")
> +_S(179, "rt_sigsuspend")
> +_S(180, "chown")
> +_S(181, "setsockopt")
> +_S(182, "getsockopt")
> +_S(183, "sendmsg")
> +_S(184, "recvmsg")
> +_S(185, "semop")
> +_S(186, "semget")
> +_S(187, "semctl")
> +_S(188, "msgsnd")
> +_S(189, "msgrcv")
> +_S(190, "msgget")
> +_S(191, "msgctl")
> +_S(192, "shmat")
> +_S(193, "shmdt")
> +_S(194, "shmget")
> +_S(195, "shmctl")
> +_S(196, "getpmsg")
> +_S(197, "putpmsg")
> +_S(198, "lstat64")
> +_S(199, "truncate64")
> +_S(200, "ftruncate64")
> +_S(201, "getdents64")
> +_S(202, "fcntl64")
> +_S(203, "attrctl")
> +_S(204, "acl_get")
> +_S(205, "acl_set")
> +_S(206, "gettid")
> +_S(207, "readahead")
> +_S(208, "tkill")
> +_S(209, "sendfile64")
> +_S(210, "futex")
> +_S(211, "sched_setaffinity")
> +_S(212, "sched_getaffinity")
> +_S(213, "set_thread_area")
> +_S(214, "get_thread_area")
> +_S(215, "io_setup")
> +_S(216, "io_destroy")
> +_S(217, "io_getevents")
> +_S(218, "io_submit")
> +_S(219, "io_cancel")
> +_S(220, "alloc_hugepages")
> +_S(221, "free_hugepages")
> +_S(222, "exit_group")
> +_S(223, "lookup_dcookie")
> +_S(224, "epoll_create")
> +_S(225, "epoll_ctl")
> +_S(226, "epoll_wait")
> +_S(227, "remap_file_pages")
> +_S(228, "semtimedop")
> +_S(229, "mq_open")
> +_S(230, "mq_unlink")
> +_S(231, "mq_timedsend")
> +_S(232, "mq_timedreceive")
> +_S(233, "mq_notify")
> +_S(234, "mq_getsetattr")
> +_S(235, "waitid")
> +_S(236, "fadvise64_64")
> +_S(237, "set_tid_address")
> +_S(238, "setxattr")
> +_S(239, "lsetxattr")
> +_S(240, "fsetxattr")
> +_S(241, "getxattr")
> +_S(242, "lgetxattr")
> +_S(243, "fgetxattr")
> +_S(244, "listxattr")
> +_S(245, "llistxattr")
> +_S(246, "flistxattr")
> +_S(247, "removexattr")
> +_S(248, "lremovexattr")
> +_S(249, "fremovexattr")
> +_S(250, "timer_create")
> +_S(251, "timer_settime")
> +_S(252, "timer_gettime")
> +_S(253, "timer_getoverrun")
> +_S(254, "timer_delete")
> +_S(255, "clock_settime")
> +_S(256, "clock_gettime")
> +_S(257, "clock_getres")
> +_S(258, "clock_nanosleep")
> +_S(259, "tgkill")
> +_S(260, "mbind")
> +_S(261, "get_mempolicy")
> +_S(262, "set_mempolicy")
> +_S(263, "vserver")
> +_S(264, "add_key")
> +_S(265, "request_key")
> +_S(266, "keyctl")
> +_S(267, "ioprio_set")
> +_S(268, "ioprio_get")
> +_S(269, "inotify_init")
> +_S(270, "inotify_add_watch")
> +_S(271, "inotify_rm_watch")
> +_S(272, "migrate_pages")
> +_S(273, "pselect6")
> +_S(274, "ppoll")
> +_S(275, "openat")
> +_S(276, "mkdirat")
> +_S(277, "mknodat")
> +_S(278, "fchownat")
> +_S(279, "futimesat")
> +_S(280, "fstatat64")
> +_S(281, "unlinkat")
> +_S(282, "renameat")
> +_S(283, "linkat")
> +_S(284, "symlinkat")
> +_S(285, "readlinkat")
> +_S(286, "fchmodat")
> +_S(287, "faccessat")
> +_S(288, "unshare")
> +_S(289, "set_robust_list")
> +_S(290, "get_robust_list")
> +_S(291, "splice")
> +_S(292, "sync_file_range")
> +_S(293, "tee")
> +_S(294, "vmsplice")
> +_S(295, "move_pages")
> +_S(296, "getcpu")
> +_S(297, "epoll_pwait")
> +_S(298, "statfs64")
> +_S(299, "fstatfs64")
> +_S(300, "kexec_load")
> +_S(301, "utimensat")
> +_S(302, "signalfd")
> +_S(303, "timerfd")
> +_S(304, "eventfd")
> +_S(305, "fallocate")
> +_S(306, "timerfd_create")
> +_S(307, "timerfd_settime")
> +_S(308, "timerfd_gettime")
> +_S(309, "signalfd4")
> +_S(310, "eventfd2")
> +_S(311, "epoll_create1")
> +_S(312, "dup3")
> +_S(313, "pipe2")
> +_S(314, "inotify_init1")
> +_S(315, "preadv")
> +_S(316, "pwritev")
> +_S(317, "rt_tgsigqueueinfo")
> +_S(318, "perf_event_open")
> +_S(319, "recvmmsg")
> +_S(320, "accept4")
> +_S(321, "prlimit64")
> +_S(322, "fanotify_init")
> +_S(323, "fanotify_mark")
> +_S(324, "clock_adjtime")
> +_S(325, "name_to_handle_at")
> +_S(326, "open_by_handle_at")
> +_S(327, "syncfs")
> +_S(328, "setns")
> +_S(329, "sendmmsg")
> +_S(330, "process_vm_readv")
> +_S(331, "process_vm_writev")
> +_S(332, "kcmp")
> +_S(333, "finit_module")
> --- audit-2.3.2.orig/lib/syscall-update.txt
> +++ audit-2.3.2/lib/syscall-update.txt
> @@ -18,3 +18,6 @@ For adding new arches, the following mig
> cat unistd.h | grep '^#define __NR_' | tr -d ')' | tr 'NR+' ' ' | awk '{ printf "_S(%s, \"%s\")\n", $6, $3 }; '
>
> it will still need hand editing
> +
> +for parisc:
> +cat /usr/include/hppa-linux-gnu/asm/unistd.h | grep '^#define __NR_' | grep \(__NR_Linux | sed "s/#define *__NR_//g" | tr -d ")" | awk '{ printf "_S(%s, \"%s\")\n", $4, $1 };'
> --- audit-2.3.2.orig/lib/test/lookup_test.c
> +++ audit-2.3.2/lib/test/lookup_test.c
> @@ -222,6 +222,23 @@ test_ppc_table(void)
> }
>
> static void
> +test_parisc_table(void)
> +{
> + static const struct entry t[] = {
> +#include "../parisc_table.h"
> + };
> +
> + printf("Testing parisc_table...\n");
> +#define I2S(I) audit_syscall_to_name((I), MACH_PARISC)
> +#define S2I(S) audit_name_to_syscall((S), MACH_PARISC)
> + TEST_I2S(0);
> + TEST_S2I(-1);
> +#undef I2S
> +#undef S2I
> +}
> +
> +
> +static void
> test_s390_table(void)
> {
> static const struct entry t[] = {
> @@ -415,6 +432,7 @@ main(void)
> test_i386_table();
> test_ia64_table();
> test_ppc_table();
> + test_parisc_table();
> test_s390_table();
> test_s390x_table();
> test_x86_64_table();
>
next prev parent reply other threads:[~2013-11-20 20:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-15 17:56 [PATCH] audit/userspace: add support for the parisc architecture Helge Deller
2013-11-20 20:16 ` Helge Deller [this message]
2014-01-18 21:45 ` [PATCH] audit/userspace: add support for the parisc architecture (v2) Helge Deller
2014-01-21 9:34 ` [PATCH] audit/userspace: add support for the parisc architecture Laurent Bigonville
2014-01-21 12:11 ` Helge Deller
2014-01-21 15:59 ` Steve Grubb
2014-01-21 21:00 ` Helge Deller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=528D18A6.2010508@gmx.de \
--to=deller@gmx.de \
--cc=linux-audit@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.