diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2013-07-25 17:50:35 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2013-07-25 17:50:35 -0400 |
commit | 38e21644377284bb0dd5165271b7f4c03fe1b773 (patch) | |
tree | 7291fb3a21db13cabbbdb76fc8856a0dfbf8d8cb | |
parent | Grsec/PaX: 2.9.1-{3.2.48,3.10.2}-201307212241 (diff) | |
download | hardened-patchset-38e21644377284bb0dd5165271b7f4c03fe1b773.tar.gz hardened-patchset-38e21644377284bb0dd5165271b7f4c03fe1b773.tar.bz2 hardened-patchset-38e21644377284bb0dd5165271b7f4c03fe1b773.zip |
Remove 1000_linux-3.10.1.patch which is genpatches20130721
-rw-r--r-- | 3.10.2/0000_README | 4 | ||||
-rw-r--r-- | 3.10.2/1000_linux-3.10.1.patch | 511 |
2 files changed, 0 insertions, 515 deletions
diff --git a/3.10.2/0000_README b/3.10.2/0000_README index 9f9962b..e834ed0 100644 --- a/3.10.2/0000_README +++ b/3.10.2/0000_README @@ -2,10 +2,6 @@ README ----------------------------------------------------------------------------- Individual Patch Descriptions: ----------------------------------------------------------------------------- -Patch: 1000_linux-3.10.1.patch -From: http://www.kernel.org -Desc: Linux 3.10.1 - Patch: 4420_grsecurity-2.9.1-3.10.2-201307212247.patch From: http://www.grsecurity.net Desc: hardened-sources base patch from upstream grsecurity diff --git a/3.10.2/1000_linux-3.10.1.patch b/3.10.2/1000_linux-3.10.1.patch deleted file mode 100644 index 5dd0002..0000000 --- a/3.10.2/1000_linux-3.10.1.patch +++ /dev/null @@ -1,511 +0,0 @@ -diff --git a/MAINTAINERS b/MAINTAINERS -index ad7e322..48c7480 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -7667,6 +7667,7 @@ STABLE BRANCH - M: Greg Kroah-Hartman <gregkh@linuxfoundation.org> - L: stable@vger.kernel.org - S: Supported -+F: Documentation/stable_kernel_rules.txt - - STAGING SUBSYSTEM - M: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -diff --git a/Makefile b/Makefile -index e5e3ba0..b75cc30 100644 ---- a/Makefile -+++ b/Makefile -@@ -1,6 +1,6 @@ - VERSION = 3 - PATCHLEVEL = 10 --SUBLEVEL = 0 -+SUBLEVEL = 1 - EXTRAVERSION = - NAME = Unicycling Gorilla - -diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c -index 260a919..5402c94 100644 ---- a/arch/x86/kvm/vmx.c -+++ b/arch/x86/kvm/vmx.c -@@ -3399,15 +3399,22 @@ static void vmx_get_segment(struct kvm_vcpu *vcpu, - var->limit = vmx_read_guest_seg_limit(vmx, seg); - var->selector = vmx_read_guest_seg_selector(vmx, seg); - ar = vmx_read_guest_seg_ar(vmx, seg); -+ var->unusable = (ar >> 16) & 1; - var->type = ar & 15; - var->s = (ar >> 4) & 1; - var->dpl = (ar >> 5) & 3; -- var->present = (ar >> 7) & 1; -+ /* -+ * Some userspaces do not preserve unusable property. Since usable -+ * segment has to be present according to VMX spec we can use present -+ * property to amend userspace bug by making unusable segment always -+ * nonpresent. vmx_segment_access_rights() already marks nonpresent -+ * segment as unusable. -+ */ -+ var->present = !var->unusable; - var->avl = (ar >> 12) & 1; - var->l = (ar >> 13) & 1; - var->db = (ar >> 14) & 1; - var->g = (ar >> 15) & 1; -- var->unusable = (ar >> 16) & 1; - } - - static u64 vmx_get_segment_base(struct kvm_vcpu *vcpu, int seg) -diff --git a/block/genhd.c b/block/genhd.c -index 20625ee..cdeb527 100644 ---- a/block/genhd.c -+++ b/block/genhd.c -@@ -512,7 +512,7 @@ static void register_disk(struct gendisk *disk) - - ddev->parent = disk->driverfs_dev; - -- dev_set_name(ddev, disk->disk_name); -+ dev_set_name(ddev, "%s", disk->disk_name); - - /* delay uevents, until we scanned partition table */ - dev_set_uevent_suppress(ddev, 1); -diff --git a/crypto/algapi.c b/crypto/algapi.c -index 6149a6e..7a1ae87 100644 ---- a/crypto/algapi.c -+++ b/crypto/algapi.c -@@ -495,7 +495,8 @@ static struct crypto_template *__crypto_lookup_template(const char *name) - - struct crypto_template *crypto_lookup_template(const char *name) - { -- return try_then_request_module(__crypto_lookup_template(name), name); -+ return try_then_request_module(__crypto_lookup_template(name), "%s", -+ name); - } - EXPORT_SYMBOL_GPL(crypto_lookup_template); - -diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c -index 037288e..46b35f7 100644 ---- a/drivers/block/nbd.c -+++ b/drivers/block/nbd.c -@@ -714,7 +714,8 @@ static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd, - else - blk_queue_flush(nbd->disk->queue, 0); - -- thread = kthread_create(nbd_thread, nbd, nbd->disk->disk_name); -+ thread = kthread_create(nbd_thread, nbd, "%s", -+ nbd->disk->disk_name); - if (IS_ERR(thread)) { - mutex_lock(&nbd->tx_lock); - return PTR_ERR(thread); -diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c -index d620b44..8a3aff7 100644 ---- a/drivers/cdrom/cdrom.c -+++ b/drivers/cdrom/cdrom.c -@@ -2882,7 +2882,7 @@ static noinline int mmc_ioctl_cdrom_read_data(struct cdrom_device_info *cdi, - if (lba < 0) - return -EINVAL; - -- cgc->buffer = kmalloc(blocksize, GFP_KERNEL); -+ cgc->buffer = kzalloc(blocksize, GFP_KERNEL); - if (cgc->buffer == NULL) - return -ENOMEM; - -diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c -index fb65dec..591b6fb 100644 ---- a/drivers/cpufreq/cpufreq_stats.c -+++ b/drivers/cpufreq/cpufreq_stats.c -@@ -349,6 +349,7 @@ static int __cpuinit cpufreq_stat_cpu_callback(struct notifier_block *nfb, - - switch (action) { - case CPU_ONLINE: -+ case CPU_ONLINE_FROZEN: - cpufreq_update_policy(cpu); - break; - case CPU_DOWN_PREPARE: -diff --git a/drivers/power/charger-manager.c b/drivers/power/charger-manager.c -index fefc39f..98de1dd 100644 ---- a/drivers/power/charger-manager.c -+++ b/drivers/power/charger-manager.c -@@ -450,7 +450,7 @@ static void uevent_notify(struct charger_manager *cm, const char *event) - strncpy(env_str, event, UEVENT_BUF_SIZE); - kobject_uevent(&cm->dev->kobj, KOBJ_CHANGE); - -- dev_info(cm->dev, event); -+ dev_info(cm->dev, "%s", event); - } - - /** -diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c -index 0fab6b5..9d86947 100644 ---- a/drivers/scsi/osd/osd_uld.c -+++ b/drivers/scsi/osd/osd_uld.c -@@ -485,7 +485,7 @@ static int osd_probe(struct device *dev) - oud->class_dev.class = &osd_uld_class; - oud->class_dev.parent = dev; - oud->class_dev.release = __remove; -- error = dev_set_name(&oud->class_dev, disk->disk_name); -+ error = dev_set_name(&oud->class_dev, "%s", disk->disk_name); - if (error) { - OSD_ERR("dev_set_name failed => %d\n", error); - goto err_put_cdev; -diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c -index c1c5552..6f6a1b4 100644 ---- a/drivers/scsi/sd.c -+++ b/drivers/scsi/sd.c -@@ -142,7 +142,7 @@ sd_store_cache_type(struct device *dev, struct device_attribute *attr, - char *buffer_data; - struct scsi_mode_data data; - struct scsi_sense_hdr sshdr; -- const char *temp = "temporary "; -+ static const char temp[] = "temporary "; - int len; - - if (sdp->type != TYPE_DISK) -diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c -index 26e3a97..c52948b 100644 ---- a/drivers/tty/serial/8250/8250_pci.c -+++ b/drivers/tty/serial/8250/8250_pci.c -@@ -4797,10 +4797,6 @@ static struct pci_device_id serial_pci_tbl[] = { - PCI_VENDOR_ID_IBM, 0x0299, - 0, 0, pbn_b0_bt_2_115200 }, - -- { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9835, -- 0x1000, 0x0012, -- 0, 0, pbn_b0_bt_2_115200 }, -- - { PCI_VENDOR_ID_NETMOS, PCI_DEVICE_ID_NETMOS_9901, - 0xA000, 0x1000, - 0, 0, pbn_b0_1_115200 }, -diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c -index 6464029..4476682 100644 ---- a/drivers/tty/tty_io.c -+++ b/drivers/tty/tty_io.c -@@ -1618,6 +1618,8 @@ static void release_tty(struct tty_struct *tty, int idx) - tty_free_termios(tty); - tty_driver_remove_tty(tty->driver, tty); - tty->port->itty = NULL; -+ if (tty->link) -+ tty->link->port->itty = NULL; - cancel_work_sync(&tty->port->buf.work); - - if (tty->link) -diff --git a/fs/ceph/xattr.c b/fs/ceph/xattr.c -index 9b6b2b6..be661d8 100644 ---- a/fs/ceph/xattr.c -+++ b/fs/ceph/xattr.c -@@ -675,17 +675,18 @@ ssize_t ceph_getxattr(struct dentry *dentry, const char *name, void *value, - if (!ceph_is_valid_xattr(name)) - return -ENODATA; - -- spin_lock(&ci->i_ceph_lock); -- dout("getxattr %p ver=%lld index_ver=%lld\n", inode, -- ci->i_xattrs.version, ci->i_xattrs.index_version); - - /* let's see if a virtual xattr was requested */ - vxattr = ceph_match_vxattr(inode, name); - if (vxattr && !(vxattr->exists_cb && !vxattr->exists_cb(ci))) { - err = vxattr->getxattr_cb(ci, value, size); -- goto out; -+ return err; - } - -+ spin_lock(&ci->i_ceph_lock); -+ dout("getxattr %p ver=%lld index_ver=%lld\n", inode, -+ ci->i_xattrs.version, ci->i_xattrs.index_version); -+ - if (__ceph_caps_issued_mask(ci, CEPH_CAP_XATTR_SHARED, 1) && - (ci->i_xattrs.index_version >= ci->i_xattrs.version)) { - goto get_xattr; -diff --git a/fs/hpfs/map.c b/fs/hpfs/map.c -index 4acb19d..803d3da 100644 ---- a/fs/hpfs/map.c -+++ b/fs/hpfs/map.c -@@ -17,7 +17,8 @@ __le32 *hpfs_map_bitmap(struct super_block *s, unsigned bmp_block, - struct quad_buffer_head *qbh, char *id) - { - secno sec; -- if (hpfs_sb(s)->sb_chk) if (bmp_block * 16384 > hpfs_sb(s)->sb_fs_size) { -+ unsigned n_bands = (hpfs_sb(s)->sb_fs_size + 0x3fff) >> 14; -+ if (hpfs_sb(s)->sb_chk) if (bmp_block >= n_bands) { - hpfs_error(s, "hpfs_map_bitmap called with bad parameter: %08x at %s", bmp_block, id); - return NULL; - } -diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c -index a0617e7..962e90c 100644 ---- a/fs/hpfs/super.c -+++ b/fs/hpfs/super.c -@@ -558,7 +558,13 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent) - sbi->sb_cp_table = NULL; - sbi->sb_c_bitmap = -1; - sbi->sb_max_fwd_alloc = 0xffffff; -- -+ -+ if (sbi->sb_fs_size >= 0x80000000) { -+ hpfs_error(s, "invalid size in superblock: %08x", -+ (unsigned)sbi->sb_fs_size); -+ goto bail4; -+ } -+ - /* Load bitmap directory */ - if (!(sbi->sb_bmp_dir = hpfs_load_bitmap_directory(s, le32_to_cpu(superblock->bitmaps)))) - goto bail4; -diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c -index 1fab140..2c37442 100644 ---- a/fs/nfs/nfs4state.c -+++ b/fs/nfs/nfs4state.c -@@ -228,19 +228,8 @@ static int nfs41_setup_state_renewal(struct nfs_client *clp) - return status; - } - --/* -- * Back channel returns NFS4ERR_DELAY for new requests when -- * NFS4_SESSION_DRAINING is set so there is no work to be done when draining -- * is ended. -- */ --static void nfs4_end_drain_session(struct nfs_client *clp) -+static void nfs4_end_drain_slot_table(struct nfs4_slot_table *tbl) - { -- struct nfs4_session *ses = clp->cl_session; -- struct nfs4_slot_table *tbl; -- -- if (ses == NULL) -- return; -- tbl = &ses->fc_slot_table; - if (test_and_clear_bit(NFS4_SLOT_TBL_DRAINING, &tbl->slot_tbl_state)) { - spin_lock(&tbl->slot_tbl_lock); - nfs41_wake_slot_table(tbl); -@@ -248,6 +237,16 @@ static void nfs4_end_drain_session(struct nfs_client *clp) - } - } - -+static void nfs4_end_drain_session(struct nfs_client *clp) -+{ -+ struct nfs4_session *ses = clp->cl_session; -+ -+ if (ses != NULL) { -+ nfs4_end_drain_slot_table(&ses->bc_slot_table); -+ nfs4_end_drain_slot_table(&ses->fc_slot_table); -+ } -+} -+ - /* - * Signal state manager thread if session fore channel is drained - */ -diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c -index 6cd86e0..582321a 100644 ---- a/fs/nfsd/nfs4xdr.c -+++ b/fs/nfsd/nfs4xdr.c -@@ -162,8 +162,8 @@ static __be32 *read_buf(struct nfsd4_compoundargs *argp, u32 nbytes) - */ - memcpy(p, argp->p, avail); - /* step to next page */ -- argp->p = page_address(argp->pagelist[0]); - argp->pagelist++; -+ argp->p = page_address(argp->pagelist[0]); - if (argp->pagelen < PAGE_SIZE) { - argp->end = argp->p + (argp->pagelen>>2); - argp->pagelen = 0; -diff --git a/include/linux/ceph/decode.h b/include/linux/ceph/decode.h -index 379f715..0442c3d 100644 ---- a/include/linux/ceph/decode.h -+++ b/include/linux/ceph/decode.h -@@ -160,11 +160,6 @@ static inline void ceph_decode_timespec(struct timespec *ts, - static inline void ceph_encode_timespec(struct ceph_timespec *tv, - const struct timespec *ts) - { -- BUG_ON(ts->tv_sec < 0); -- BUG_ON(ts->tv_sec > (__kernel_time_t)U32_MAX); -- BUG_ON(ts->tv_nsec < 0); -- BUG_ON(ts->tv_nsec > (long)U32_MAX); -- - tv->tv_sec = cpu_to_le32((u32)ts->tv_sec); - tv->tv_nsec = cpu_to_le32((u32)ts->tv_nsec); - } -diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h -index 6b4890f..feaf0c7 100644 ---- a/include/linux/hugetlb.h -+++ b/include/linux/hugetlb.h -@@ -358,6 +358,17 @@ static inline int hstate_index(struct hstate *h) - return h - hstates; - } - -+pgoff_t __basepage_index(struct page *page); -+ -+/* Return page->index in PAGE_SIZE units */ -+static inline pgoff_t basepage_index(struct page *page) -+{ -+ if (!PageCompound(page)) -+ return page->index; -+ -+ return __basepage_index(page); -+} -+ - #else /* CONFIG_HUGETLB_PAGE */ - struct hstate {}; - #define alloc_huge_page_node(h, nid) NULL -@@ -378,6 +389,11 @@ static inline unsigned int pages_per_huge_page(struct hstate *h) - } - #define hstate_index_to_shift(index) 0 - #define hstate_index(h) 0 -+ -+static inline pgoff_t basepage_index(struct page *page) -+{ -+ return page->index; -+} - #endif /* CONFIG_HUGETLB_PAGE */ - - #endif /* _LINUX_HUGETLB_H */ -diff --git a/kernel/futex.c b/kernel/futex.c -index b26dcfc..49dacfb 100644 ---- a/kernel/futex.c -+++ b/kernel/futex.c -@@ -61,6 +61,7 @@ - #include <linux/nsproxy.h> - #include <linux/ptrace.h> - #include <linux/sched/rt.h> -+#include <linux/hugetlb.h> - - #include <asm/futex.h> - -@@ -365,7 +366,7 @@ again: - } else { - key->both.offset |= FUT_OFF_INODE; /* inode-based key */ - key->shared.inode = page_head->mapping->host; -- key->shared.pgoff = page_head->index; -+ key->shared.pgoff = basepage_index(page); - } - - get_futex_key_refs(key); -diff --git a/kernel/module.c b/kernel/module.c -index cab4bce..fa53db8 100644 ---- a/kernel/module.c -+++ b/kernel/module.c -@@ -2927,7 +2927,6 @@ static struct module *layout_and_allocate(struct load_info *info, int flags) - { - /* Module within temporary copy. */ - struct module *mod; -- Elf_Shdr *pcpusec; - int err; - - mod = setup_load_info(info, flags); -@@ -2942,17 +2941,10 @@ static struct module *layout_and_allocate(struct load_info *info, int flags) - err = module_frob_arch_sections(info->hdr, info->sechdrs, - info->secstrings, mod); - if (err < 0) -- goto out; -+ return ERR_PTR(err); - -- pcpusec = &info->sechdrs[info->index.pcpu]; -- if (pcpusec->sh_size) { -- /* We have a special allocation for this section. */ -- err = percpu_modalloc(mod, -- pcpusec->sh_size, pcpusec->sh_addralign); -- if (err) -- goto out; -- pcpusec->sh_flags &= ~(unsigned long)SHF_ALLOC; -- } -+ /* We will do a special allocation for per-cpu sections later. */ -+ info->sechdrs[info->index.pcpu].sh_flags &= ~(unsigned long)SHF_ALLOC; - - /* Determine total sizes, and put offsets in sh_entsize. For now - this is done generically; there doesn't appear to be any -@@ -2963,17 +2955,22 @@ static struct module *layout_and_allocate(struct load_info *info, int flags) - /* Allocate and move to the final place */ - err = move_module(mod, info); - if (err) -- goto free_percpu; -+ return ERR_PTR(err); - - /* Module has been copied to its final place now: return it. */ - mod = (void *)info->sechdrs[info->index.mod].sh_addr; - kmemleak_load_module(mod, info); - return mod; -+} - --free_percpu: -- percpu_modfree(mod); --out: -- return ERR_PTR(err); -+static int alloc_module_percpu(struct module *mod, struct load_info *info) -+{ -+ Elf_Shdr *pcpusec = &info->sechdrs[info->index.pcpu]; -+ if (!pcpusec->sh_size) -+ return 0; -+ -+ /* We have a special allocation for this section. */ -+ return percpu_modalloc(mod, pcpusec->sh_size, pcpusec->sh_addralign); - } - - /* mod is no longer valid after this! */ -@@ -3237,6 +3234,11 @@ static int load_module(struct load_info *info, const char __user *uargs, - } - #endif - -+ /* To avoid stressing percpu allocator, do this once we're unique. */ -+ err = alloc_module_percpu(mod, info); -+ if (err) -+ goto unlink_mod; -+ - /* Now module is in final location, initialize linked lists, etc. */ - err = module_unload_init(mod); - if (err) -diff --git a/mm/hugetlb.c b/mm/hugetlb.c -index e2bfbf7..5cf99bf 100644 ---- a/mm/hugetlb.c -+++ b/mm/hugetlb.c -@@ -690,6 +690,23 @@ int PageHuge(struct page *page) - } - EXPORT_SYMBOL_GPL(PageHuge); - -+pgoff_t __basepage_index(struct page *page) -+{ -+ struct page *page_head = compound_head(page); -+ pgoff_t index = page_index(page_head); -+ unsigned long compound_idx; -+ -+ if (!PageHuge(page_head)) -+ return page_index(page); -+ -+ if (compound_order(page_head) >= MAX_ORDER) -+ compound_idx = page_to_pfn(page) - page_to_pfn(page_head); -+ else -+ compound_idx = page - page_head; -+ -+ return (index << compound_order(page_head)) + compound_idx; -+} -+ - static struct page *alloc_fresh_huge_page_node(struct hstate *h, int nid) - { - struct page *page; -diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 1947218..fd79df5 100644 ---- a/mm/memcontrol.c -+++ b/mm/memcontrol.c -@@ -6303,8 +6303,6 @@ mem_cgroup_css_online(struct cgroup *cont) - * call __mem_cgroup_free, so return directly - */ - mem_cgroup_put(memcg); -- if (parent->use_hierarchy) -- mem_cgroup_put(parent); - } - return error; - } -diff --git a/net/ceph/auth_none.c b/net/ceph/auth_none.c -index 925ca58..8c93fa8 100644 ---- a/net/ceph/auth_none.c -+++ b/net/ceph/auth_none.c -@@ -39,6 +39,11 @@ static int should_authenticate(struct ceph_auth_client *ac) - return xi->starting; - } - -+static int build_request(struct ceph_auth_client *ac, void *buf, void *end) -+{ -+ return 0; -+} -+ - /* - * the generic auth code decode the global_id, and we carry no actual - * authenticate state, so nothing happens here. -@@ -106,6 +111,7 @@ static const struct ceph_auth_client_ops ceph_auth_none_ops = { - .destroy = destroy, - .is_authenticated = is_authenticated, - .should_authenticate = should_authenticate, -+ .build_request = build_request, - .handle_reply = handle_reply, - .create_authorizer = ceph_auth_none_create_authorizer, - .destroy_authorizer = ceph_auth_none_destroy_authorizer, |