diff options
author | Mark Brown <broonie@kernel.org> | 2015-08-27 20:30:46 +0100 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-08-27 20:30:46 +0100 |
commit | 2002e90412df17ef7f714be62ed96a3c80b2f907 (patch) | |
tree | 3dd03684f7436320ec64f9c702b5d057a25dca17 /security | |
parent | 02a9547e9b3f10d73fde66f52fc8b2a375a300cd (diff) | |
parent | 3b7ce99748f0d006f9d1aa85709872e7b46787f7 (diff) | |
download | kernel_replicant_linux-2002e90412df17ef7f714be62ed96a3c80b2f907.tar.gz kernel_replicant_linux-2002e90412df17ef7f714be62ed96a3c80b2f907.tar.bz2 kernel_replicant_linux-2002e90412df17ef7f714be62ed96a3c80b2f907.zip |
Merge branch 'topic/ics43432' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-gtm601
Diffstat (limited to 'security')
-rw-r--r-- | security/selinux/hooks.c | 3 | ||||
-rw-r--r-- | security/selinux/ss/ebitmap.c | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 623108199641..564079c5c49d 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -3283,7 +3283,8 @@ static int file_map_prot_check(struct file *file, unsigned long prot, int shared int rc = 0; if (default_noexec && - (prot & PROT_EXEC) && (!file || (!shared && (prot & PROT_WRITE)))) { + (prot & PROT_EXEC) && (!file || IS_PRIVATE(file_inode(file)) || + (!shared && (prot & PROT_WRITE)))) { /* * We are making executable an anonymous mapping or a * private file mapping that will also be writable. diff --git a/security/selinux/ss/ebitmap.c b/security/selinux/ss/ebitmap.c index afe6a269ec17..57644b1dc42e 100644 --- a/security/selinux/ss/ebitmap.c +++ b/security/selinux/ss/ebitmap.c @@ -153,6 +153,12 @@ int ebitmap_netlbl_import(struct ebitmap *ebmap, if (offset == (u32)-1) return 0; + /* don't waste ebitmap space if the netlabel bitmap is empty */ + if (bitmap == 0) { + offset += EBITMAP_UNIT_SIZE; + continue; + } + if (e_iter == NULL || offset >= e_iter->startbit + EBITMAP_SIZE) { e_prev = e_iter; |