Gentoo Archives: gentoo-commits

From: Sven Vermeulen <sven.vermeulen@××××××.be>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/hardened-refpolicy:master commit in: policy/modules/contrib/
Date: Fri, 28 Sep 2012 17:51:46
Message-Id: 1348854100.9f11ca3f1aec7fb3723a2a1a3bc7bf58ffd69877.SwifT@gentoo
1 commit: 9f11ca3f1aec7fb3723a2a1a3bc7bf58ffd69877
2 Author: Dominick Grift <dominick.grift <AT> gmail <DOT> com>
3 AuthorDate: Fri Sep 28 09:28:10 2012 +0000
4 Commit: Sven Vermeulen <sven.vermeulen <AT> siphos <DOT> be>
5 CommitDate: Fri Sep 28 17:41:40 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=9f11ca3f
7
8 Changes to the devicekit policy module and relevant dependencies
9
10 Ported from Fedora with changes
11
12 Signed-off-by: Dominick Grift <dominick.grift <AT> gmail.com>
13
14 ---
15 policy/modules/contrib/devicekit.fc | 32 ++++++----
16 policy/modules/contrib/devicekit.if | 41 ++++++-------
17 policy/modules/contrib/devicekit.te | 109 +++++++++++++++++++++++++++--------
18 policy/modules/contrib/hal.fc | 2 -
19 policy/modules/contrib/hal.if | 1 -
20 policy/modules/contrib/hal.te | 2 +-
21 policy/modules/contrib/readahead.if | 22 +++++++-
22 policy/modules/contrib/readahead.te | 2 +-
23 8 files changed, 144 insertions(+), 67 deletions(-)
24
25 diff --git a/policy/modules/contrib/devicekit.fc b/policy/modules/contrib/devicekit.fc
26 index 9af85c8..ae49c9d 100644
27 --- a/policy/modules/contrib/devicekit.fc
28 +++ b/policy/modules/contrib/devicekit.fc
29 @@ -1,20 +1,26 @@
30 +/lib/udev/udisks-part-id -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
31 +/lib/udisks2/udisksd -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
32 +
33 +/usr/lib/udev/udisks-part-id -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
34 +/usr/lib/udisks2/udisksd -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
35 /usr/lib/udisks/udisks-daemon -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
36 +/usr/lib/upower/upowerd -- gen_context(system_u:object_r:devicekit_power_exec_t,s0)
37
38 /usr/libexec/devkit-daemon -- gen_context(system_u:object_r:devicekit_exec_t,s0)
39 -/usr/libexec/devkit-disks-daemon -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
40 -/usr/libexec/devkit-power-daemon -- gen_context(system_u:object_r:devicekit_power_exec_t,s0)
41 +/usr/libexec/devkit-disks-daemon -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
42 +/usr/libexec/devkit-power-daemon -- gen_context(system_u:object_r:devicekit_power_exec_t,s0)
43 /usr/libexec/udisks-daemon -- gen_context(system_u:object_r:devicekit_disk_exec_t,s0)
44 -/usr/libexec/upowerd -- gen_context(system_u:object_r:devicekit_power_exec_t,s0)
45 +/usr/libexec/upowerd -- gen_context(system_u:object_r:devicekit_power_exec_t,s0)
46
47 -ifdef(`distro_debian',`
48 -/usr/lib/upower/upowerd -- gen_context(system_u:object_r:devicekit_power_exec_t,s0)
49 -')
50 +/var/lib/DeviceKit-.* gen_context(system_u:object_r:devicekit_var_lib_t,s0)
51 +/var/lib/upower(/.*)? gen_context(system_u:object_r:devicekit_var_lib_t,s0)
52 +/var/lib/udisks.* gen_context(system_u:object_r:devicekit_var_lib_t,s0)
53
54 -/var/lib/DeviceKit-.* gen_context(system_u:object_r:devicekit_var_lib_t,s0)
55 -/var/lib/upower(/.*)? gen_context(system_u:object_r:devicekit_var_lib_t,s0)
56 -/var/lib/udisks(/.*)? gen_context(system_u:object_r:devicekit_var_lib_t,s0)
57 +/var/log/pm-powersave\.log.* -- gen_context(system_u:object_r:devicekit_var_log_t,s0)
58 +/var/log/pm-suspend\.log.* -- gen_context(system_u:object_r:devicekit_var_log_t,s0)
59
60 -/var/run/devkit(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
61 -/var/run/DeviceKit-disks(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
62 -/var/run/udisks(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
63 -/var/run/upower(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
64 +/var/run/devkit(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
65 +/var/run/DeviceKit-disks(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
66 +/var/run/pm-utils(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
67 +/var/run/udisks.* gen_context(system_u:object_r:devicekit_var_run_t,s0)
68 +/var/run/upower(/.*)? gen_context(system_u:object_r:devicekit_var_run_t,s0)
69
70 diff --git a/policy/modules/contrib/devicekit.if b/policy/modules/contrib/devicekit.if
71 index aac2e84..d294865 100644
72 --- a/policy/modules/contrib/devicekit.if
73 +++ b/policy/modules/contrib/devicekit.if
74 @@ -1,4 +1,4 @@
75 -## <summary>Devicekit modular hardware abstraction layer</summary>
76 +## <summary>Devicekit modular hardware abstraction layer.</summary>
77
78 ########################################
79 ## <summary>
80 @@ -15,6 +15,7 @@ interface(`devicekit_domtrans',`
81 type devicekit_t, devicekit_exec_t;
82 ')
83
84 + corecmd_search_bin($1)
85 domtrans_pattern($1, devicekit_exec_t, devicekit_t)
86 ')
87
88 @@ -31,10 +32,11 @@ interface(`devicekit_domtrans',`
89 #
90 interface(`devicekit_dgram_send',`
91 gen_require(`
92 - type devicekit_t;
93 + type devicekit_t, devicekit_var_run_t;
94 ')
95
96 - allow $1 devicekit_t:unix_dgram_socket sendto;
97 + files_search_pids($1)
98 + dgram_send_pattern($1, devicekit_var_run_t, devicekit_var_run_t, devicekit_t)
99 ')
100
101 ########################################
102 @@ -81,7 +83,7 @@ interface(`devicekit_dbus_chat_disk',`
103
104 ########################################
105 ## <summary>
106 -## Send signal devicekit power
107 +## Send generic signals to devicekit power.
108 ## </summary>
109 ## <param name="domain">
110 ## <summary>
111 @@ -198,8 +200,8 @@ interface(`devicekit_manage_pid_files',`
112
113 ########################################
114 ## <summary>
115 -## All of the rules required to administrate
116 -## an devicekit environment
117 +## All of the rules required to
118 +## administrate an devicekit environment.
119 ## </summary>
120 ## <param name="domain">
121 ## <summary>
122 @@ -208,12 +210,7 @@ interface(`devicekit_manage_pid_files',`
123 ## </param>
124 ## <param name="role">
125 ## <summary>
126 -## The role to be allowed to manage the devicekit domain.
127 -## </summary>
128 -## </param>
129 -## <param name="terminal">
130 -## <summary>
131 -## The type of the user terminal.
132 +## Role allowed access.
133 ## </summary>
134 ## </param>
135 ## <rolecap/>
136 @@ -222,23 +219,21 @@ interface(`devicekit_admin',`
137 gen_require(`
138 type devicekit_t, devicekit_disk_t, devicekit_power_t;
139 type devicekit_var_lib_t, devicekit_var_run_t, devicekit_tmp_t;
140 + type devicekit_var_log_t;
141 ')
142
143 - allow $1 devicekit_t:process { ptrace signal_perms getattr };
144 - ps_process_pattern($1, devicekit_t)
145 -
146 - allow $1 devicekit_disk_t:process { ptrace signal_perms getattr };
147 - ps_process_pattern($1, devicekit_disk_t)
148 -
149 - allow $1 devicekit_power_t:process { ptrace signal_perms getattr };
150 - ps_process_pattern($1, devicekit_power_t)
151 + allow $1 { devicekit_t devicekit_disk_t devicekit_power_t }:process { ptrace signal_perms };
152 + ps_process_pattern($1, { devicekit_t devicekit_disk_t devicekit_power_t })
153
154 - admin_pattern($1, devicekit_tmp_t)
155 files_search_tmp($1)
156 + admin_pattern($1, devicekit_tmp_t)
157
158 - admin_pattern($1, devicekit_var_lib_t)
159 files_search_var_lib($1)
160 + admin_pattern($1, devicekit_var_lib_t)
161 +
162 + logging_search_logs($1)
163 + admin_pattern($1, devicekit_var_log_t)
164
165 - admin_pattern($1, devicekit_var_run_t)
166 files_search_pids($1)
167 + admin_pattern($1, devicekit_var_run_t)
168 ')
169
170 diff --git a/policy/modules/contrib/devicekit.te b/policy/modules/contrib/devicekit.te
171 index 1819518..ff933af 100644
172 --- a/policy/modules/contrib/devicekit.te
173 +++ b/policy/modules/contrib/devicekit.te
174 @@ -1,4 +1,4 @@
175 -policy_module(devicekit, 1.2.0)
176 +policy_module(devicekit, 1.2.1)
177
178 ########################################
179 #
180 @@ -26,16 +26,19 @@ files_pid_file(devicekit_var_run_t)
181 type devicekit_var_lib_t;
182 files_type(devicekit_var_lib_t)
183
184 +type devicekit_var_log_t;
185 +logging_log_file(devicekit_var_log_t)
186 +
187 ########################################
188 #
189 -# DeviceKit local policy
190 +# Local policy
191 #
192
193 allow devicekit_t self:unix_dgram_socket create_socket_perms;
194
195 manage_dirs_pattern(devicekit_t, devicekit_var_run_t, devicekit_var_run_t)
196 manage_files_pattern(devicekit_t, devicekit_var_run_t, devicekit_var_run_t)
197 -files_pid_filetrans(devicekit_t, devicekit_var_run_t, { file dir })
198 +files_pid_filetrans(devicekit_t, devicekit_var_run_t, { dir file })
199
200 kernel_read_system_state(devicekit_t)
201
202 @@ -49,8 +52,7 @@ miscfiles_read_localization(devicekit_t)
203 optional_policy(`
204 dbus_system_bus_client(devicekit_t)
205
206 - allow devicekit_t devicekit_disk_t:dbus send_msg;
207 - allow devicekit_t devicekit_power_t:dbus send_msg;
208 + allow devicekit_t { devicekit_disk_t devicekit_power_t }:dbus send_msg;
209 ')
210
211 optional_policy(`
212 @@ -59,7 +61,7 @@ optional_policy(`
213
214 ########################################
215 #
216 -# DeviceKit disk local policy
217 +# Disk local policy
218 #
219
220 allow devicekit_disk_t self:capability { chown setuid setgid dac_override fowner fsetid net_admin sys_admin sys_nice sys_ptrace sys_rawio };
221 @@ -69,17 +71,20 @@ allow devicekit_disk_t self:netlink_kobject_uevent_socket create_socket_perms;
222
223 manage_dirs_pattern(devicekit_disk_t, devicekit_tmp_t, devicekit_tmp_t)
224 manage_files_pattern(devicekit_disk_t, devicekit_tmp_t, devicekit_tmp_t)
225 -files_tmp_filetrans(devicekit_disk_t, devicekit_tmp_t, { file dir })
226 +files_tmp_filetrans(devicekit_disk_t, devicekit_tmp_t, { dir file })
227
228 manage_dirs_pattern(devicekit_disk_t, devicekit_var_lib_t, devicekit_var_lib_t)
229 manage_files_pattern(devicekit_disk_t, devicekit_var_lib_t, devicekit_var_lib_t)
230 files_var_lib_filetrans(devicekit_disk_t, devicekit_var_lib_t, dir)
231
232 +allow devicekit_disk_t devicekit_var_run_t:dir mounton;
233 manage_dirs_pattern(devicekit_disk_t, devicekit_var_run_t, devicekit_var_run_t)
234 manage_files_pattern(devicekit_disk_t, devicekit_var_run_t, devicekit_var_run_t)
235 -files_pid_filetrans(devicekit_disk_t, devicekit_var_run_t, { file dir })
236 +files_pid_filetrans(devicekit_disk_t, devicekit_var_run_t, { dir file })
237
238 kernel_getattr_message_if(devicekit_disk_t)
239 +kernel_list_unlabeled(devicekit_disk_t)
240 +kernel_dontaudit_getattr_unlabeled_files(devicekit_disk_t)
241 kernel_read_fs_sysctls(devicekit_disk_t)
242 kernel_read_network_state(devicekit_disk_t)
243 kernel_read_software_raid_state(devicekit_disk_t)
244 @@ -91,12 +96,12 @@ corecmd_exec_bin(devicekit_disk_t)
245 corecmd_exec_shell(devicekit_disk_t)
246 corecmd_getattr_all_executables(devicekit_disk_t)
247
248 -dev_rw_sysfs(devicekit_disk_t)
249 -dev_read_urand(devicekit_disk_t)
250 -dev_getattr_usbfs_dirs(devicekit_disk_t)
251 -dev_manage_generic_files(devicekit_disk_t)
252 dev_getattr_all_chr_files(devicekit_disk_t)
253 dev_getattr_mtrr_dev(devicekit_disk_t)
254 +dev_getattr_usbfs_dirs(devicekit_disk_t)
255 +dev_manage_generic_files(devicekit_disk_t)
256 +dev_read_urand(devicekit_disk_t)
257 +dev_rw_sysfs(devicekit_disk_t)
258
259 domain_getattr_all_pipes(devicekit_disk_t)
260 domain_getattr_all_sockets(devicekit_disk_t)
261 @@ -105,14 +110,16 @@ domain_read_all_domains_state(devicekit_disk_t)
262
263 files_dontaudit_read_all_symlinks(devicekit_disk_t)
264 files_getattr_all_sockets(devicekit_disk_t)
265 -files_getattr_all_mountpoints(devicekit_disk_t)
266 +files_getattr_all_dirs(devicekit_disk_t)
267 files_getattr_all_files(devicekit_disk_t)
268 +files_getattr_all_pipes(devicekit_disk_t)
269 +files_manage_boot_dirs(devicekit_disk_t)
270 files_manage_isid_type_dirs(devicekit_disk_t)
271 files_manage_mnt_dirs(devicekit_disk_t)
272 -files_read_etc_files(devicekit_disk_t)
273 files_read_etc_runtime_files(devicekit_disk_t)
274 files_read_usr_files(devicekit_disk_t)
275
276 +fs_getattr_all_fs(devicekit_disk_t)
277 fs_list_inotifyfs(devicekit_disk_t)
278 fs_manage_fusefs_dirs(devicekit_disk_t)
279 fs_mount_all_fs(devicekit_disk_t)
280 @@ -144,6 +151,10 @@ optional_policy(`
281 optional_policy(`
282 consolekit_dbus_chat(devicekit_disk_t)
283 ')
284 +
285 + optional_policy(`
286 + policykit_dbus_chat(devicekit_disk_t)
287 + ')
288 ')
289
290 optional_policy(`
291 @@ -159,7 +170,6 @@ optional_policy(`
292 ')
293
294 optional_policy(`
295 - policykit_dbus_chat(devicekit_disk_t)
296 policykit_domtrans_auth(devicekit_disk_t)
297 policykit_read_lib(devicekit_disk_t)
298 policykit_read_reload(devicekit_disk_t)
299 @@ -180,43 +190,62 @@ optional_policy(`
300
301 ########################################
302 #
303 -# DeviceKit-Power local policy
304 +# Power local policy
305 #
306
307 allow devicekit_power_t self:capability { dac_override net_admin sys_admin sys_tty_config sys_nice sys_ptrace };
308 -allow devicekit_power_t self:process getsched;
309 +allow devicekit_power_t self:process { getsched signal_perms };
310 allow devicekit_power_t self:fifo_file rw_fifo_file_perms;
311 allow devicekit_power_t self:unix_dgram_socket create_socket_perms;
312 allow devicekit_power_t self:netlink_kobject_uevent_socket create_socket_perms;
313
314 +manage_dirs_pattern(devicekit_power_t, devicekit_tmp_t, devicekit_tmp_t)
315 +manage_files_pattern(devicekit_power_t, devicekit_tmp_t, devicekit_tmp_t)
316 +files_tmp_filetrans(devicekit_power_t, devicekit_tmp_t, { file dir })
317 +
318 manage_dirs_pattern(devicekit_power_t, devicekit_var_lib_t, devicekit_var_lib_t)
319 manage_files_pattern(devicekit_power_t, devicekit_var_lib_t, devicekit_var_lib_t)
320 files_var_lib_filetrans(devicekit_power_t, devicekit_var_lib_t, dir)
321
322 +allow devicekit_power_t devicekit_var_log_t:file append_file_perms;
323 +allow devicekit_power_t devicekit_var_log_t:file create_file_perms;
324 +allow devicekit_power_t devicekit_var_log_t:file setattr_file_perms;
325 +logging_log_filetrans(devicekit_power_t, devicekit_var_log_t, file)
326 +
327 +manage_dirs_pattern(devicekit_power_t, devicekit_var_run_t, devicekit_var_run_t)
328 +manage_files_pattern(devicekit_power_t, devicekit_var_run_t, devicekit_var_run_t)
329 +files_pid_filetrans(devicekit_power_t, devicekit_var_run_t, { dir file })
330 +
331 +kernel_read_fs_sysctls(devicekit_power_t)
332 kernel_read_network_state(devicekit_power_t)
333 kernel_read_system_state(devicekit_power_t)
334 kernel_rw_hotplug_sysctls(devicekit_power_t)
335 kernel_rw_kernel_sysctl(devicekit_power_t)
336 +kernel_rw_vm_sysctls(devicekit_power_t)
337 kernel_search_debugfs(devicekit_power_t)
338 kernel_write_proc_files(devicekit_power_t)
339 +kernel_setsched(devicekit_power_t)
340
341 corecmd_exec_bin(devicekit_power_t)
342 corecmd_exec_shell(devicekit_power_t)
343
344 -consoletype_exec(devicekit_power_t)
345 -
346 -domain_read_all_domains_state(devicekit_power_t)
347 -
348 dev_read_input(devicekit_power_t)
349 +dev_read_urand(devicekit_power_t)
350 dev_rw_generic_usb_dev(devicekit_power_t)
351 dev_rw_generic_chr_files(devicekit_power_t)
352 dev_rw_netcontrol(devicekit_power_t)
353 dev_rw_sysfs(devicekit_power_t)
354 +dev_read_rand(devicekit_power_t)
355 +dev_getattr_all_chr_files(devicekit_power_t)
356 +
357 +domain_read_all_domains_state(devicekit_power_t)
358
359 files_read_kernel_img(devicekit_power_t)
360 -files_read_etc_files(devicekit_power_t)
361 +files_read_etc_runtime_files(devicekit_power_t)
362 files_read_usr_files(devicekit_power_t)
363 +files_dontaudit_list_mnt(devicekit_power_t)
364
365 +fs_getattr_all_fs(devicekit_power_t)
366 fs_list_inotifyfs(devicekit_power_t)
367
368 term_use_all_terms(devicekit_power_t)
369 @@ -225,8 +254,8 @@ auth_use_nsswitch(devicekit_power_t)
370
371 miscfiles_read_localization(devicekit_power_t)
372
373 -sysnet_read_config(devicekit_power_t)
374 sysnet_domtrans_ifconfig(devicekit_power_t)
375 +sysnet_domtrans_dhcpc(devicekit_power_t)
376
377 userdom_read_all_users_state(devicekit_power_t)
378
379 @@ -235,6 +264,10 @@ optional_policy(`
380 ')
381
382 optional_policy(`
383 + consoletype_exec(devicekit_power_t)
384 +')
385 +
386 +optional_policy(`
387 cron_initrc_domtrans(devicekit_power_t)
388 ')
389
390 @@ -248,10 +281,18 @@ optional_policy(`
391 ')
392
393 optional_policy(`
394 + hal_dbus_chat(devicekit_power_t)
395 + ')
396 +
397 + optional_policy(`
398 networkmanager_dbus_chat(devicekit_power_t)
399 ')
400
401 optional_policy(`
402 + policykit_dbus_chat(devicekit_power_t)
403 + ')
404 +
405 + optional_policy(`
406 rpm_dbus_chat(devicekit_power_t)
407 ')
408 ')
409 @@ -265,20 +306,38 @@ optional_policy(`
410 hal_manage_log(devicekit_power_t)
411 hal_manage_pid_dirs(devicekit_power_t)
412 hal_manage_pid_files(devicekit_power_t)
413 - hal_dbus_chat(devicekit_power_t)
414 ')
415
416 optional_policy(`
417 - policykit_dbus_chat(devicekit_power_t)
418 + modutils_domtrans_insmod(devicekit_power_t)
419 +')
420 +
421 +optional_policy(`
422 + mount_domtrans(devicekit_power_t)
423 +')
424 +
425 +optional_policy(`
426 + networkmanager_domtrans(devicekit_power_t)
427 +')
428 +
429 +optional_policy(`
430 policykit_domtrans_auth(devicekit_power_t)
431 policykit_read_lib(devicekit_power_t)
432 policykit_read_reload(devicekit_power_t)
433 ')
434
435 optional_policy(`
436 + readahead_domtrans(devicekit_power_t)
437 +')
438 +
439 +optional_policy(`
440 udev_read_db(devicekit_power_t)
441 ')
442
443 optional_policy(`
444 + usbmuxd_stream_connect(devicekit_power_t)
445 +')
446 +
447 +optional_policy(`
448 vbetool_domtrans(devicekit_power_t)
449 ')
450
451 diff --git a/policy/modules/contrib/hal.fc b/policy/modules/contrib/hal.fc
452 index 2b6e3a9..8747ff6 100644
453 --- a/policy/modules/contrib/hal.fc
454 +++ b/policy/modules/contrib/hal.fc
455 @@ -19,12 +19,10 @@
456 /var/lib/hal(/.*)? gen_context(system_u:object_r:hald_var_lib_t,s0)
457
458 /var/log/pm(/.*)? gen_context(system_u:object_r:hald_log_t,s0)
459 -/var/log/pm-.*\.log.* gen_context(system_u:object_r:hald_log_t,s0)
460
461 /var/run/hald(/.*)? gen_context(system_u:object_r:hald_var_run_t,s0)
462 /var/run/haldaemon\.pid -- gen_context(system_u:object_r:hald_var_run_t,s0)
463 /var/run/pm(/.*)? gen_context(system_u:object_r:hald_var_run_t,s0)
464 -/var/run/pm-utils(/.*)? gen_context(system_u:object_r:hald_var_run_t,s0)
465 /var/run/synce.* gen_context(system_u:object_r:hald_var_run_t,s0)
466 /var/run/vbe.* -- gen_context(system_u:object_r:hald_var_run_t,s0)
467
468
469 diff --git a/policy/modules/contrib/hal.if b/policy/modules/contrib/hal.if
470 index 7cf6763..0428ba4 100644
471 --- a/policy/modules/contrib/hal.if
472 +++ b/policy/modules/contrib/hal.if
473 @@ -316,7 +316,6 @@ interface(`hal_manage_log',`
474
475 # log files for hald
476 manage_files_pattern($1, hald_log_t, hald_log_t)
477 - logging_log_filetrans($1, hald_log_t, file)
478 ')
479
480 ########################################
481
482 diff --git a/policy/modules/contrib/hal.te b/policy/modules/contrib/hal.te
483 index e0476cb..667783c 100644
484 --- a/policy/modules/contrib/hal.te
485 +++ b/policy/modules/contrib/hal.te
486 @@ -1,4 +1,4 @@
487 -policy_module(hal, 1.14.0)
488 +policy_module(hal, 1.14.1)
489
490 ########################################
491 #
492
493 diff --git a/policy/modules/contrib/readahead.if b/policy/modules/contrib/readahead.if
494 index 47c4723..5bd316b 100644
495 --- a/policy/modules/contrib/readahead.if
496 +++ b/policy/modules/contrib/readahead.if
497 @@ -1 +1,21 @@
498 -## <summary>Readahead, read files into page cache for improved performance</summary>
499 +## <summary>Readahead, read files into page cache for improved performance.</summary>
500 +
501 +########################################
502 +## <summary>
503 +## Execute a domain transition
504 +## to run readahead.
505 +## </summary>
506 +## <param name="domain">
507 +## <summary>
508 +## Domain allowed to transition.
509 +## </summary>
510 +## </param>
511 +#
512 +interface(`readahead_domtrans',`
513 + gen_require(`
514 + type readahead_t, readahead_exec_t;
515 + ')
516 +
517 + corecmd_search_bin($1)
518 + domtrans_pattern($1, readahead_exec_t, readahead_t)
519 +')
520
521 diff --git a/policy/modules/contrib/readahead.te b/policy/modules/contrib/readahead.te
522 index b4ac57e..34baa30 100644
523 --- a/policy/modules/contrib/readahead.te
524 +++ b/policy/modules/contrib/readahead.te
525 @@ -1,4 +1,4 @@
526 -policy_module(readahead, 1.12.0)
527 +policy_module(readahead, 1.12.1)
528
529 ########################################
530 #