1. 30 Jul, 2015 3 commits
  2. 24 Jul, 2015 2 commits
    • Mimi Zohar's avatar
      evm: labeling pseudo filesystems exception · 00cc0819
      Mimi Zohar authored
      commit 5101a185 upstream.
      
      To prevent offline stripping of existing file xattrs and relabeling of
      them at runtime, EVM allows only newly created files to be labeled.  As
      pseudo filesystems are not persistent, stripping of xattrs is not a
      concern.
      
      Some LSMs defer file labeling on pseudo filesystems.  This patch
      permits the labeling of existing files on pseudo files systems.
      Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      00cc0819
    • Lennert Buytenhek's avatar
      ieee802154: Fix sockaddr_ieee802154 implicit padding information leak. · 18ffb713
      Lennert Buytenhek authored
      commit 8a70cefa upstream.
      
      The AF_IEEE802154 sockaddr looks like this:
      
      	struct sockaddr_ieee802154 {
      		sa_family_t family; /* AF_IEEE802154 */
      		struct ieee802154_addr_sa addr;
      	};
      
      	struct ieee802154_addr_sa {
      		int addr_type;
      		u16 pan_id;
      		union {
      			u8 hwaddr[IEEE802154_ADDR_LEN];
      			u16 short_addr;
      		};
      	};
      
      On most architectures there will be implicit structure padding here,
      in two different places:
      
      * In struct sockaddr_ieee802154, two bytes of padding between 'family'
        (unsigned short) and 'addr', so that 'addr' starts on a four byte
        boundary.
      
      * In struct ieee802154_addr_sa, two bytes at the end of the structure,
        to make the structure 16 bytes.
      
      When calling recvmsg(2) on a PF_IEEE802154 SOCK_DGRAM socket, the
      ieee802154 stack constructs a struct sockaddr_ieee802154 on the
      kernel stack without clearing these padding fields, and, depending
      on the addr_type, between four and ten bytes of uncleared kernel
      stack will be copied to userspace.
      
      We can't just insert two 'u16 __pad's in the right places and zero
      those before copying an address to userspace, as not all architectures
      insert this implicit padding -- from a quick test it seems that avr32,
      cris and m68k don't insert this padding, while every other architecture
      that I have cross compilers for does insert this padding.
      
      The easiest way to plug the leak is to just memset the whole struct
      sockaddr_ieee802154 before filling in the fields we want to fill in,
      and that's what this patch does.
      Signed-off-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
      Acked-by: default avatarAlexander Aring <alex.aring@gmail.com>
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      [ luis: backported to 3.16:
        - file rename: net/ieee802154/socket.c -> net/ieee802154/dgram.c ]
      Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
      Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
      18ffb713
  3. 20 Jul, 2015 1 commit
  4. 16 Jul, 2015 34 commits