| 1 |
diff -ur libselinux-2.1.9.orig/src/load_policy.c libselinux-2.1.9/src/load_policy.c
|
| 2 |
--- libselinux-2.1.9.orig/src/load_policy.c 2012-05-05 10:33:06.130719282 +0200
|
| 3 |
+++ libselinux-2.1.9/src/load_policy.c 2012-05-05 10:43:45.024720646 +0200
|
| 4 |
@@ -370,8 +370,16 @@
|
| 5 |
* mount it if present for use in the calls below.
|
| 6 |
*/
|
| 7 |
char *mntpoint = NULL;
|
| 8 |
- if (mount(SELINUXFS, SELINUXMNT, SELINUXFS, 0, 0) == 0 || errno == EBUSY) {
|
| 9 |
- mntpoint = SELINUXMNT;
|
| 10 |
+ /* First make sure /sys is mounted */
|
| 11 |
+ if (mount("sysfs", "/sys", "sysfs", 0, 0) == 0 || errno == EBUSY) {
|
| 12 |
+ if (mount(SELINUXFS, SELINUXMNT, SELINUXFS, 0, 0) == 0 || errno == EBUSY) {
|
| 13 |
+ mntpoint = SELINUXMNT;
|
| 14 |
+ } else {
|
| 15 |
+ /* check old mountpoint */
|
| 16 |
+ if (mount(SELINUXFS, OLDSELINUXMNT, SELINUXFS, 0, 0) == 0 || errno == EBUSY) {
|
| 17 |
+ mntpoint = OLDSELINUXMNT;
|
| 18 |
+ }
|
| 19 |
+ }
|
| 20 |
} else {
|
| 21 |
/* check old mountpoint */
|
| 22 |
if (mount(SELINUXFS, OLDSELINUXMNT, SELINUXFS, 0, 0) == 0 || errno == EBUSY) {
|