aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2017-02-15 10:45:04 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2017-02-15 10:50:44 +0000
commitd5bafe84443f4411647954dd80451dc95eb66daf (patch)
tree9e80b3b8167cdbb42a173d312607dd40ed60c4fe
parent2919a67e878fbd8306058e97ac497818dc608bea (diff)
downloadaports-d5bafe84443f4411647954dd80451dc95eb66daf.tar.bz2
aports-d5bafe84443f4411647954dd80451dc95eb66daf.tar.xz
main/zfs-grsec: add fixes for PaX RAP
-rw-r--r--main/zfs-grsec/APKBUILD6
-rw-r--r--main/zfs-grsec/pax-rap-fixes.patch154
2 files changed, 158 insertions, 2 deletions
diff --git a/main/zfs-grsec/APKBUILD b/main/zfs-grsec/APKBUILD
index 3d0a9e3b60..c72440b8f0 100644
--- a/main/zfs-grsec/APKBUILD
+++ b/main/zfs-grsec/APKBUILD
@@ -10,7 +10,7 @@ _kver=4.9.9
_kpkgrel=1
_realver=0.6.5.9
-_mypkgrel=0
+_mypkgrel=1
# source the kernel version
if [ -f ../../main/linux-$_flavor/APKBUILD ]; then
@@ -46,6 +46,7 @@ source="https://github.com/zfsonlinux/zfs/releases/download/zfs-$_realver/zfs-$_
0007-Remove-complicated-libspl-assert-wrappers.patch
0008-Add-support-for-libtirpc.patch
0009-Add-support-for-alpine-linux.patch
+ pax-rap-fixes.patch
"
@@ -94,4 +95,5 @@ fbd44839a422925a54710e8425405d24ca2428b78aa54b9a77492e5882a3e21aa4a5e53656466c5a
e20fb3004af9e6454513d7df09292465e5bc4101a558538cf794ef41b56a30713e1868dcda251e6b3ed10c5f0178e86068bcb113bd8228eedb626cb73bb19ecd 0006-Move-hrtime_t-timestruc_t-and-timespec_t.patch
9843aca713021772435cfa68fde5d9aa2de0387de0da6c48045db0348f2a24d2c2e968d3eb1921923170c9e2fd6514e31c5f0a7bacbf8510b53c2c625c4737d1 0007-Remove-complicated-libspl-assert-wrappers.patch
fa752b3ed04f05ec4fac257cbd2c581a57a792e12165d8f135a77b894445cdefb0da1753922e3e59c9fbaed20ca1dc6d19b5436745c8fa588a42304f6561f1a2 0008-Add-support-for-libtirpc.patch
-d2efb627f493bab06f8049dc4bcb7c39269ff9dcd66879a0f96fa5040e1c7468f9e684277ec3e54841b3a5f8734d9470f2c6a1af470e3f1a71f759f9155b7ede 0009-Add-support-for-alpine-linux.patch"
+d2efb627f493bab06f8049dc4bcb7c39269ff9dcd66879a0f96fa5040e1c7468f9e684277ec3e54841b3a5f8734d9470f2c6a1af470e3f1a71f759f9155b7ede 0009-Add-support-for-alpine-linux.patch
+676bcc968d46735a2b35659a32ca9e9d0de44aafef255dcc811d62e416c4fc27802ac170af2e4dcde9ba7fd609a39eeb9bd751d7d9988e9b61ee80225e6a0451 pax-rap-fixes.patch"
diff --git a/main/zfs-grsec/pax-rap-fixes.patch b/main/zfs-grsec/pax-rap-fixes.patch
new file mode 100644
index 0000000000..072a2f3ac4
--- /dev/null
+++ b/main/zfs-grsec/pax-rap-fixes.patch
@@ -0,0 +1,154 @@
+diff --git a/cmd/ztest/ztest.c b/cmd/ztest/ztest.c
+index 40524ed..a83b559 100644
+--- a/cmd/ztest/ztest.c
++++ b/cmd/ztest/ztest.c
+@@ -5541,7 +5541,7 @@ ztest_resume(spa_t *spa)
+ (void) zio_resume(spa);
+ }
+
+-static void *
++static void
+ ztest_resume_thread(void *arg)
+ {
+ spa_t *spa = arg;
+@@ -5553,8 +5553,6 @@ ztest_resume_thread(void *arg)
+ }
+
+ thread_exit();
+-
+- return (NULL);
+ }
+
+ #define GRACE 300
+@@ -5588,7 +5586,7 @@ ztest_execute(int test, ztest_info_t *zi, uint64_t id)
+ (double)functime / NANOSEC, zi->zi_funcname);
+ }
+
+-static void *
++static void
+ ztest_thread(void *arg)
+ {
+ int rand;
+@@ -5628,8 +5626,6 @@ ztest_thread(void *arg)
+ }
+
+ thread_exit();
+-
+- return (NULL);
+ }
+
+ static void
+@@ -5818,7 +5814,7 @@ ztest_run(ztest_shared_t *zs)
+ * Create a thread to periodically resume suspended I/O.
+ */
+ VERIFY3P((resume_thread = zk_thread_create(NULL, 0,
+- (thread_func_t)ztest_resume_thread, spa, TS_RUN, NULL, 0, 0,
++ ztest_resume_thread, spa, TS_RUN, NULL, 0, 0,
+ PTHREAD_CREATE_JOINABLE)), !=, NULL);
+
+ #if 0
+@@ -5870,7 +5866,7 @@ ztest_run(ztest_shared_t *zs)
+ return;
+
+ VERIFY3P(thread = zk_thread_create(NULL, 0,
+- (thread_func_t)ztest_thread,
++ ztest_thread,
+ (void *)(uintptr_t)t, TS_RUN, NULL, 0, 0,
+ PTHREAD_CREATE_JOINABLE), !=, NULL);
+ tid[t] = thread->t_tid;
+diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h
+index 78e33e1..255b1a4 100644
+--- a/include/sys/zfs_context.h
++++ b/include/sys/zfs_context.h
+@@ -240,7 +240,7 @@ typedef struct kthread {
+ #define getcomm() "unknown"
+ #define thread_exit zk_thread_exit
+ #define thread_create(stk, stksize, func, arg, len, pp, state, pri) \
+- zk_thread_create(stk, stksize, (thread_func_t)func, arg, \
++ zk_thread_create(stk, stksize, func, arg, \
+ len, NULL, state, pri, PTHREAD_CREATE_DETACHED)
+ #define thread_join(t) zk_thread_join(t)
+ #define newproc(f, a, cid, pri, ctp, pid) (ENOSYS)
+diff --git a/module/zfs/arc.c b/module/zfs/arc.c
+index 04fde6c..a9652dd 100644
+--- a/module/zfs/arc.c
++++ b/module/zfs/arc.c
+@@ -3416,7 +3416,7 @@ arc_kmem_reap_now(void)
+ * using mutex_tryenter() from arc_reclaim_thread().
+ */
+ static void
+-arc_reclaim_thread(void)
++arc_reclaim_thread(void *_unused)
+ {
+ fstrans_cookie_t cookie = spl_fstrans_mark();
+ clock_t growtime = 0;
+@@ -3509,7 +3509,7 @@ arc_reclaim_thread(void)
+ }
+
+ static void
+-arc_user_evicts_thread(void)
++arc_user_evicts_thread(void *_unused)
+ {
+ fstrans_cookie_t cookie = spl_fstrans_mark();
+ callb_cpr_t cpr;
+@@ -6732,7 +6732,7 @@ l2arc_release_cdata_buf(arc_buf_hdr_t *hdr)
+ * heart of the L2ARC.
+ */
+ static void
+-l2arc_feed_thread(void)
++l2arc_feed_thread(void *_unused)
+ {
+ callb_cpr_t cpr;
+ l2arc_dev_t *dev;
+diff --git a/module/zfs/spa.c b/module/zfs/spa.c
+index dde909e..34ff0dc 100644
+--- a/module/zfs/spa.c
++++ b/module/zfs/spa.c
+@@ -5646,8 +5646,9 @@ spa_async_autoexpand(spa_t *spa, vdev_t *vd)
+ }
+
+ static void
+-spa_async_thread(spa_t *spa)
++spa_async_thread(void *_spa)
+ {
++ spa_t *spa = _spa;
+ int tasks, i;
+
+ ASSERT(spa->spa_sync_on);
+diff --git a/module/zfs/txg.c b/module/zfs/txg.c
+index 1d5ee97..2d63a57 100644
+--- a/module/zfs/txg.c
++++ b/module/zfs/txg.c
+@@ -107,8 +107,8 @@
+ * now transition to the syncing state.
+ */
+
+-static void txg_sync_thread(dsl_pool_t *dp);
+-static void txg_quiesce_thread(dsl_pool_t *dp);
++static void txg_sync_thread(void *_dp);
++static void txg_quiesce_thread(void *_dp);
+
+ int zfs_txg_timeout = 5; /* max seconds worth of delta per txg */
+
+@@ -475,8 +475,9 @@ txg_wait_callbacks(dsl_pool_t *dp)
+ }
+
+ static void
+-txg_sync_thread(dsl_pool_t *dp)
++txg_sync_thread(void *_dp)
+ {
++ dsl_pool_t *dp = _dp;
+ spa_t *spa = dp->dp_spa;
+ tx_state_t *tx = &dp->dp_tx;
+ callb_cpr_t cpr;
+@@ -584,8 +585,9 @@ txg_sync_thread(dsl_pool_t *dp)
+ }
+
+ static void
+-txg_quiesce_thread(dsl_pool_t *dp)
++txg_quiesce_thread(void *_dp)
+ {
++ dsl_pool_t *dp = _dp;
+ tx_state_t *tx = &dp->dp_tx;
+ callb_cpr_t cpr;
+