14 Jul, 2017

1 commit

  • Syscalls must validate that their reserved arguments are zero and return
    EINVAL otherwise. Otherwise, it will be impossible to actually use them
    for anything in the future because existing programs may be passing
    garbage in. This is standard practice when adding new APIs.

    Cc: stable@vger.kernel.org
    Signed-off-by: Eric Biggers
    Signed-off-by: David Howells
    Signed-off-by: James Morris

    Eric Biggers
     

13 Jul, 2017

1 commit

  • This adds support for compiling with a rough equivalent to the glibc
    _FORTIFY_SOURCE=1 feature, providing compile-time and runtime buffer
    overflow checks for string.h functions when the compiler determines the
    size of the source or destination buffer at compile-time. Unlike glibc,
    it covers buffer reads in addition to writes.

    GNU C __builtin_*_chk intrinsics are avoided because they would force a
    much more complex implementation. They aren't designed to detect read
    overflows and offer no real benefit when using an implementation based
    on inline checks. Inline checks don't add up to much code size and
    allow full use of the regular string intrinsics while avoiding the need
    for a bunch of _chk functions and per-arch assembly to avoid wrapper
    overhead.

    This detects various overflows at compile-time in various drivers and
    some non-x86 core kernel code. There will likely be issues caught in
    regular use at runtime too.

    Future improvements left out of initial implementation for simplicity,
    as it's all quite optional and can be done incrementally:

    * Some of the fortified string functions (strncpy, strcat), don't yet
    place a limit on reads from the source based on __builtin_object_size of
    the source buffer.

    * Extending coverage to more string functions like strlcat.

    * It should be possible to optionally use __builtin_object_size(x, 1) for
    some functions (C strings) to detect intra-object overflows (like
    glibc's _FORTIFY_SOURCE=2), but for now this takes the conservative
    approach to avoid likely compatibility issues.

    * The compile-time checks should be made available via a separate config
    option which can be enabled by default (or always enabled) once enough
    time has passed to get the issues it catches fixed.

    Kees said:
    "This is great to have. While it was out-of-tree code, it would have
    blocked at least CVE-2016-3858 from being exploitable (improper size
    argument to strlcpy()). I've sent a number of fixes for
    out-of-bounds-reads that this detected upstream already"

    [arnd@arndb.de: x86: fix fortified memcpy]
    Link: http://lkml.kernel.org/r/20170627150047.660360-1-arnd@arndb.de
    [keescook@chromium.org: avoid panic() in favor of BUG()]
    Link: http://lkml.kernel.org/r/20170626235122.GA25261@beast
    [keescook@chromium.org: move from -mm, add ARCH_HAS_FORTIFY_SOURCE, tweak Kconfig help]
    Link: http://lkml.kernel.org/r/20170526095404.20439-1-danielmicay@gmail.com
    Link: http://lkml.kernel.org/r/1497903987-21002-8-git-send-email-keescook@chromium.org
    Signed-off-by: Daniel Micay
    Signed-off-by: Kees Cook
    Signed-off-by: Arnd Bergmann
    Acked-by: Kees Cook
    Cc: Mark Rutland
    Cc: Daniel Axtens
    Cc: Rasmus Villemoes
    Cc: Andy Shevchenko
    Cc: Chris Metcalf
    Cc: Thomas Gleixner
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Micay
     

06 Jul, 2017

3 commits

  • Pull memdup_user() conversions from Al Viro:
    "A fairly self-contained series - hunting down open-coded memdup_user()
    and memdup_user_nul() instances"

    * 'work.memdup_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    bpf: don't open-code memdup_user()
    kimage_file_prepare_segments(): don't open-code memdup_user()
    ethtool: don't open-code memdup_user()
    do_ip_setsockopt(): don't open-code memdup_user()
    do_ipv6_setsockopt(): don't open-code memdup_user()
    irda: don't open-code memdup_user()
    xfrm_user_policy(): don't open-code memdup_user()
    ima_write_policy(): don't open-code memdup_user_nul()
    sel_write_validatetrans(): don't open-code memdup_user_nul()

    Linus Torvalds
     
  • Pull networking updates from David Miller:
    "Reasonably busy this cycle, but perhaps not as busy as in the 4.12
    merge window:

    1) Several optimizations for UDP processing under high load from
    Paolo Abeni.

    2) Support pacing internally in TCP when using the sch_fq packet
    scheduler for this is not practical. From Eric Dumazet.

    3) Support mutliple filter chains per qdisc, from Jiri Pirko.

    4) Move to 1ms TCP timestamp clock, from Eric Dumazet.

    5) Add batch dequeueing to vhost_net, from Jason Wang.

    6) Flesh out more completely SCTP checksum offload support, from
    Davide Caratti.

    7) More plumbing of extended netlink ACKs, from David Ahern, Pablo
    Neira Ayuso, and Matthias Schiffer.

    8) Add devlink support to nfp driver, from Simon Horman.

    9) Add RTM_F_FIB_MATCH flag to RTM_GETROUTE queries, from Roopa
    Prabhu.

    10) Add stack depth tracking to BPF verifier and use this information
    in the various eBPF JITs. From Alexei Starovoitov.

    11) Support XDP on qed device VFs, from Yuval Mintz.

    12) Introduce BPF PROG ID for better introspection of installed BPF
    programs. From Martin KaFai Lau.

    13) Add bpf_set_hash helper for TC bpf programs, from Daniel Borkmann.

    14) For loads, allow narrower accesses in bpf verifier checking, from
    Yonghong Song.

    15) Support MIPS in the BPF selftests and samples infrastructure, the
    MIPS eBPF JIT will be merged in via the MIPS GIT tree. From David
    Daney.

    16) Support kernel based TLS, from Dave Watson and others.

    17) Remove completely DST garbage collection, from Wei Wang.

    18) Allow installing TCP MD5 rules using prefixes, from Ivan
    Delalande.

    19) Add XDP support to Intel i40e driver, from Björn Töpel

    20) Add support for TC flower offload in nfp driver, from Simon
    Horman, Pieter Jansen van Vuuren, Benjamin LaHaise, Jakub
    Kicinski, and Bert van Leeuwen.

    21) IPSEC offloading support in mlx5, from Ilan Tayari.

    22) Add HW PTP support to macb driver, from Rafal Ozieblo.

    23) Networking refcount_t conversions, From Elena Reshetova.

    24) Add sock_ops support to BPF, from Lawrence Brako. This is useful
    for tuning the TCP sockopt settings of a group of applications,
    currently via CGROUPs"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1899 commits)
    net: phy: dp83867: add workaround for incorrect RX_CTRL pin strap
    dt-bindings: phy: dp83867: provide a workaround for incorrect RX_CTRL pin strap
    cxgb4: Support for get_ts_info ethtool method
    cxgb4: Add PTP Hardware Clock (PHC) support
    cxgb4: time stamping interface for PTP
    nfp: default to chained metadata prepend format
    nfp: remove legacy MAC address lookup
    nfp: improve order of interfaces in breakout mode
    net: macb: remove extraneous return when MACB_EXT_DESC is defined
    bpf: add missing break in for the TCP_BPF_SNDCWND_CLAMP case
    bpf: fix return in load_bpf_file
    mpls: fix rtm policy in mpls_getroute
    net, ax25: convert ax25_cb.refcount from atomic_t to refcount_t
    net, ax25: convert ax25_route.refcount from atomic_t to refcount_t
    net, ax25: convert ax25_uid_assoc.refcount from atomic_t to refcount_t
    net, sctp: convert sctp_ep_common.refcnt from atomic_t to refcount_t
    net, sctp: convert sctp_transport.refcnt from atomic_t to refcount_t
    net, sctp: convert sctp_chunk.refcnt from atomic_t to refcount_t
    net, sctp: convert sctp_datamsg.refcnt from atomic_t to refcount_t
    net, sctp: convert sctp_auth_bytes.refcnt from atomic_t to refcount_t
    ...

    Linus Torvalds
     
  • Pull security layer updates from James Morris:

    - a major update for AppArmor. From JJ:

    * several bug fixes and cleanups

    * the patch to add symlink support to securityfs that was floated
    on the list earlier and the apparmorfs changes that make use of
    securityfs symlinks

    * it introduces the domain labeling base code that Ubuntu has been
    carrying for several years, with several cleanups applied. And it
    converts the current mediation over to using the domain labeling
    base, which brings domain stacking support with it. This finally
    will bring the base upstream code in line with Ubuntu and provide
    a base to upstream the new feature work that Ubuntu carries.

    * This does _not_ contain any of the newer apparmor mediation
    features/controls (mount, signals, network, keys, ...) that
    Ubuntu is currently carrying, all of which will be RFC'd on top
    of this.

    - Notable also is the Infiniband work in SELinux, and the new file:map
    permission. From Paul:

    "While we're down to 21 patches for v4.13 (it was 31 for v4.12),
    the diffstat jumps up tremendously with over 2k of line changes.

    Almost all of these changes are the SELinux/IB work done by
    Daniel Jurgens; some other noteworthy changes include a NFS v4.2
    labeling fix, a new file:map permission, and reporting of policy
    capabilities on policy load"

    There's also now genfscon labeling support for tracefs, which was
    lost in v4.1 with the separation from debugfs.

    - Smack incorporates a safer socket check in file_receive, and adds a
    cap_capable call in privilege check.

    - TPM as usual has a bunch of fixes and enhancements.

    - Multiple calls to security_add_hooks() can now be made for the same
    LSM, to allow LSMs to have hook declarations across multiple files.

    - IMA now supports different "ima_appraise=" modes (eg. log, fix) from
    the boot command line.

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (126 commits)
    apparmor: put back designators in struct initialisers
    seccomp: Switch from atomic_t to recount_t
    seccomp: Adjust selftests to avoid double-join
    seccomp: Clean up core dump logic
    IMA: update IMA policy documentation to include pcr= option
    ima: Log the same audit cause whenever a file has no signature
    ima: Simplify policy_func_show.
    integrity: Small code improvements
    ima: fix get_binary_runtime_size()
    ima: use ima_parse_buf() to parse template data
    ima: use ima_parse_buf() to parse measurements headers
    ima: introduce ima_parse_buf()
    ima: Add cgroups2 to the defaults list
    ima: use memdup_user_nul
    ima: fix up #endif comments
    IMA: Correct Kconfig dependencies for hash selection
    ima: define is_ima_appraise_enabled()
    ima: define Kconfig IMA_APPRAISE_BOOTPARAM option
    ima: define a set of appraisal rules requiring file signatures
    ima: extend the "ima_policy" boot command line to support multiple policies
    ...

    Linus Torvalds
     

04 Jul, 2017

3 commits

  • Pull documentation updates from Jonathan Corbet:
    "There has been a fair amount of activity in the docs tree this time
    around. Highlights include:

    - Conversion of a bunch of security documentation into RST

    - The conversion of the remaining DocBook templates by The Amazing
    Mauro Machine. We can now drop the entire DocBook build chain.

    - The usual collection of fixes and minor updates"

    * tag 'docs-4.13' of git://git.lwn.net/linux: (90 commits)
    scripts/kernel-doc: handle DECLARE_HASHTABLE
    Documentation: atomic_ops.txt is core-api/atomic_ops.rst
    Docs: clean up some DocBook loose ends
    Make the main documentation title less Geocities
    Docs: Use kernel-figure in vidioc-g-selection.rst
    Docs: fix table problems in ras.rst
    Docs: Fix breakage with Sphinx 1.5 and upper
    Docs: Include the Latex "ifthen" package
    doc/kokr/howto: Only send regression fixes after -rc1
    docs-rst: fix broken links to dynamic-debug-howto in kernel-parameters
    doc: Document suitability of IBM Verse for kernel development
    Doc: fix a markup error in coding-style.rst
    docs: driver-api: i2c: remove some outdated information
    Documentation: DMA API: fix a typo in a function name
    Docs: Insert missing space to separate link from text
    doc/ko_KR/memory-barriers: Update control-dependencies example
    Documentation, kbuild: fix typo "minimun" -> "minimum"
    docs: Fix some formatting issues in request-key.rst
    doc: ReSTify keys-trusted-encrypted.txt
    doc: ReSTify keys-request-key.txt
    ...

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Add the SYSTEM_SCHEDULING bootup state to move various scheduler
    debug checks earlier into the bootup. This turns silent and
    sporadically deadly bugs into nice, deterministic splats. Fix some
    of the splats that triggered. (Thomas Gleixner)

    - A round of restructuring and refactoring of the load-balancing and
    topology code (Peter Zijlstra)

    - Another round of consolidating ~20 of incremental scheduler code
    history: this time in terms of wait-queue nomenclature. (I didn't
    get much feedback on these renaming patches, and we can still
    easily change any names I might have misplaced, so if anyone hates
    a new name, please holler and I'll fix it.) (Ingo Molnar)

    - sched/numa improvements, fixes and updates (Rik van Riel)

    - Another round of x86/tsc scheduler clock code improvements, in hope
    of making it more robust (Peter Zijlstra)

    - Improve NOHZ behavior (Frederic Weisbecker)

    - Deadline scheduler improvements and fixes (Luca Abeni, Daniel
    Bristot de Oliveira)

    - Simplify and optimize the topology setup code (Lauro Ramos
    Venancio)

    - Debloat and decouple scheduler code some more (Nicolas Pitre)

    - Simplify code by making better use of llist primitives (Byungchul
    Park)

    - ... plus other fixes and improvements"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (103 commits)
    sched/cputime: Refactor the cputime_adjust() code
    sched/debug: Expose the number of RT/DL tasks that can migrate
    sched/numa: Hide numa_wake_affine() from UP build
    sched/fair: Remove effective_load()
    sched/numa: Implement NUMA node level wake_affine()
    sched/fair: Simplify wake_affine() for the single socket case
    sched/numa: Override part of migrate_degrades_locality() when idle balancing
    sched/rt: Move RT related code from sched/core.c to sched/rt.c
    sched/deadline: Move DL related code from sched/core.c to sched/deadline.c
    sched/cpuset: Only offer CONFIG_CPUSETS if SMP is enabled
    sched/fair: Spare idle load balancing on nohz_full CPUs
    nohz: Move idle balancer registration to the idle path
    sched/loadavg: Generalize "_idle" naming to "_nohz"
    sched/core: Drop the unused try_get_task_struct() helper function
    sched/fair: WARN() and refuse to set buddy when !se->on_rq
    sched/debug: Fix SCHED_WARN_ON() to return a value on !CONFIG_SCHED_DEBUG as well
    sched/wait: Disambiguate wq_entry->task_list and wq_head->task_list naming
    sched/wait: Move bit_wait_table[] and related functionality from sched/core.c to sched/wait_bit.c
    sched/wait: Split out the wait_bit*() APIs from into
    sched/wait: Re-adjust macro line continuation backslashes in
    ...

    Linus Torvalds
     
  • Pull uuid subsystem from Christoph Hellwig:
    "This is the new uuid subsystem, in which Amir, Andy and I have started
    consolidating our uuid/guid helpers and improving the types used for
    them. Note that various other subsystems have pulled in this tree, so
    I'd like it to go in early.

    UUID/GUID summary:

    - introduce the new uuid_t/guid_t types that are going to replace the
    somewhat confusing uuid_be/uuid_le types and make the terminology
    fit the various specs, as well as the userspace libuuid library.
    (me, based on a previous version from Amir)

    - consolidated generic uuid/guid helper functions lifted from XFS and
    libnvdimm (Amir and me)

    - conversions to the new types and helpers (Amir, Andy and me)"

    * tag 'uuid-for-4.13' of git://git.infradead.org/users/hch/uuid: (34 commits)
    ACPI: hns_dsaf_acpi_dsm_guid can be static
    mmc: sdhci-pci: make guid intel_dsm_guid static
    uuid: Take const on input of uuid_is_null() and guid_is_null()
    thermal: int340x_thermal: fix compile after the UUID API switch
    thermal: int340x_thermal: Switch to use new generic UUID API
    acpi: always include uuid.h
    ACPI: Switch to use generic guid_t in acpi_evaluate_dsm()
    ACPI / extlog: Switch to use new generic UUID API
    ACPI / bus: Switch to use new generic UUID API
    ACPI / APEI: Switch to use new generic UUID API
    acpi, nfit: Switch to use new generic UUID API
    MAINTAINERS: add uuid entry
    tmpfs: generate random sb->s_uuid
    scsi_debug: switch to uuid_t
    nvme: switch to uuid_t
    sysctl: switch to use uuid_t
    partitions/ldm: switch to use uuid_t
    overlayfs: use uuid_t instead of uuid_be
    fs: switch ->s_uuid to uuid_t
    ima/policy: switch to use uuid_t
    ...

    Linus Torvalds
     

30 Jun, 2017

1 commit


28 Jun, 2017

1 commit


23 Jun, 2017

1 commit


22 Jun, 2017

16 commits

  • Two entries being added at the same time to the IFLA
    policy table, whilst parallel bug fixes to decnet
    routing dst handling overlapping with the dst gc removal
    in net-next.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • If the file doesn't have an xattr, ima_appraise_measurement sets cause to
    "missing-hash" while if there's an xattr but it's a digest instead of a
    signature it sets cause to "IMA-signature-required".

    Fix it by setting cause to "IMA-signature-required" in both cases.

    Signed-off-by: Thiago Jung Bauermann
    Signed-off-by: Mimi Zohar

    Thiago Jung Bauermann
     
  • If the func_tokens array uses the same indices as enum ima_hooks,
    policy_func_show can be a lot simpler, and the func_* enum becomes
    unnecessary.

    Also, if we use the same macro trick used by kernel_read_file_id_str we can
    use one hooks list for both the enum and the string array, making sure they
    are always in sync (suggested by Mimi Zohar).

    Finally, by using the printf pattern for the function token directly
    instead of using the pt macro we can simplify policy_func_show even further
    and avoid needing a temporary buffer.

    Signed-off-by: Thiago Jung Bauermann
    Signed-off-by: Mimi Zohar

    Thiago Jung Bauermann
     
  • These changes are too small to warrant their own patches:

    The keyid and sig_size members of struct signature_v2_hdr are in BE format,
    so use a type that makes this assumption explicit. Also, use beXX_to_cpu
    instead of __beXX_to_cpu to read them.

    Change integrity_kernel_read to take a void * buffer instead of char *
    buffer, so that callers don't have to use a cast if they provide a buffer
    that isn't a char *.

    Add missing #endif comment in ima.h pointing out which macro it refers to.

    Add missing fall through comment in ima_appraise.c.

    Constify mask_tokens and func_tokens arrays.

    Signed-off-by: Thiago Jung Bauermann
    Signed-off-by: Mimi Zohar

    Thiago Jung Bauermann
     
  • Remove '+ 1' from 'size += strlen(entry->template_desc->name) + 1;',
    as the template name is sent to userspace without the '\0' character.

    Signed-off-by: Roberto Sassu
    Signed-off-by: Mimi Zohar

    Roberto Sassu
     
  • The binary_field_data structure definition has been removed from
    ima_restore_template_data(). The lengths and data pointers are directly
    stored into the template_data array of the ima_template_entry structure.
    For template data, both the number of fields and buffer end checks can
    be done, as these information are known (respectively from the template
    descriptor, and from the measurement header field).

    Signed-off-by: Roberto Sassu
    Signed-off-by: Mimi Zohar

    Roberto Sassu
     
  • The binary_hdr_v1 and binary_data_v1 structures defined in
    ima_restore_measurement_list() have been replaced with an array of four
    ima_field_data structures where pcr, digest, template name and
    template data lengths and pointers are stored.

    The length of pcr and digest in the ima_field_data array and the bits
    in the bitmap are set before ima_parse_buf() is called. The ENFORCE_FIELDS
    bit is set for all entries except the last one (there is still data to
    parse), and ENFORCE_BUFEND is set only for the last entry.

    Signed-off-by: Roberto Sassu
    Signed-off-by: Mimi Zohar

    Roberto Sassu
     
  • ima_parse_buf() takes as input the buffer start and end pointers, and
    stores the result in a static array of ima_field_data structures,
    where the len field contains the length parsed from the buffer, and
    the data field contains the address of the buffer just after the length.
    Optionally, the function returns the current value of the buffer pointer
    and the number of array elements written.

    A bitmap has been added as parameter of ima_parse_buf() to handle
    the cases where the length is not prepended to data. Each bit corresponds
    to an element of the ima_field_data array. If a bit is set, the length
    is not parsed from the buffer, but is read from the corresponding element
    of the array (the length must be set before calling the function).

    ima_parse_buf() can perform three checks upon request by callers,
    depending on the enforce mask passed to it:

    - ENFORCE_FIELDS: matching of number of fields (length-data combination)
    - there must be enough data in the buffer to parse the number of fields
    requested (output: current value of buffer pointer)
    - ENFORCE_BUFEND: matching of buffer end
    - the ima_field_data array must be large enough to contain lengths and
    data pointers for the amount of data requested (output: number
    of fields written)
    - ENFORCE_FIELDS | ENFORCE_BUFEND: matching of both

    Use cases

    - measurement entry header: ENFORCE_FIELDS | ENFORCE_BUFEND
    - four fields must be parsed: pcr, digest, template name, template data
    - ENFORCE_BUFEND is enforced only for the last measurement entry
    - template digest (Crypto Agile): ENFORCE_BUFEND
    - since only the total template digest length is known, the function
    parses length-data combinations until the buffer end is reached
    - template data: ENFORCE_FIELDS | ENFORCE_BUFEND
    - since the number of fields and the total template data length
    are known, the function can perform both checks

    Signed-off-by: Roberto Sassu
    Signed-off-by: Mimi Zohar

    Roberto Sassu
     
  • cgroups2 is beginning to show up in wider usage. Add it to the default
    nomeasure/noappraise list like other filesystems.

    Signed-off-by: Laura Abbott
    Signed-off-by: Mimi Zohar

    Laura Abbott
     
  • Use memdup_user_nul() helper instead of open-coding to simplify the
    code.

    Signed-off-by: Geliang Tang
    Signed-off-by: Mimi Zohar

    Geliang Tang
     
  • While reading the code, I noticed that these #endif comments don't match
    how they're actually nested. This patch fixes that.

    Signed-off-by: Tycho Andersen
    Signed-off-by: Mimi Zohar

    Tycho Andersen
     
  • IMA uses the hash algorithm too early to be able to use a module.
    Require the selected hash algorithm to be built-in.

    Signed-off-by: Ben Hutchings
    Signed-off-by: Mimi Zohar

    Ben Hutchings
     
  • Only return enabled if in enforcing mode, not fix or log modes.

    Signed-off-by: Mimi Zohar

    Changes:
    - Define is_ima_appraise_enabled() as a bool (Thiago Bauermann)

    Mimi Zohar
     
  • Permit enabling the different "ima_appraise=" modes (eg. log, fix)
    from the boot command line.

    Signed-off-by: Mimi Zohar

    Mimi Zohar
     
  • The builtin "ima_appraise_tcb" policy should require file signatures for
    at least a few of the hooks (eg. kernel modules, firmware, and the kexec
    kernel image), but changing it would break the existing userspace/kernel
    ABI.

    This patch defines a new builtin policy named "secure_boot", which
    can be specified on the "ima_policy=" boot command line, independently
    or in conjunction with the "ima_appraise_tcb" policy, by specifing
    ima_policy="appraise_tcb | secure_boot". The new appraisal rules
    requiring file signatures will be added prior to the "ima_appraise_tcb"
    rules.

    Signed-off-by: Mimi Zohar

    Changelog:
    - Reference secure boot in the new builtin policy name. (Thiago Bauermann)

    Mimi Zohar
     
  • Add support for providing multiple builtin policies on the "ima_policy="
    boot command line. Use "|" as the delimitor separating the policy names.

    Signed-off-by: Mimi Zohar

    Mimi Zohar
     

21 Jun, 2017

3 commits


20 Jun, 2017

1 commit

  • The wait_bit*() types and APIs are mixed into wait.h, but they
    are a pretty orthogonal extension of wait-queues.

    Furthermore, only about 50 kernel files use these APIs, while
    over 1000 use the regular wait-queue functionality.

    So clean up the main wait.h by moving the wait-bit functionality
    out of it, into a separate .h and .c file:

    include/linux/wait_bit.h for types and APIs
    kernel/sched/wait_bit.c for the implementation

    Update all header dependencies.

    This reduces the size of wait.h rather significantly, by about 30%.

    Cc: Linus Torvalds
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Ingo Molnar
     

13 Jun, 2017

1 commit

  • This patch is based on a discussion generated by an earlier patch
    from Tetsuo Handa:

    * https://marc.info/?t=149035659300001&r=1&w=2

    The double free problem involves the mnt_opts field of the
    security_mnt_opts struct, selinux_parse_opts_str() frees the memory
    on error, but doesn't set the field to NULL so if the caller later
    attempts to call security_free_mnt_opts() we trigger the problem.

    In order to play it safe we change selinux_parse_opts_str() to call
    security_free_mnt_opts() on error instead of free'ing the memory
    directly. This should ensure that everything is handled correctly,
    regardless of what the caller may do.

    Fixes: e0007529893c1c06 ("LSM/SELinux: Interfaces to allow FS to control mount options")
    Cc: stable@vger.kernel.org
    Cc: Tetsuo Handa
    Reported-by: Dmitry Vyukov
    Signed-off-by: Paul Moore
    Signed-off-by: James Morris

    Paul Moore
     

11 Jun, 2017

8 commits