1. 29 Aug, 2017 1 commit
  2. 25 Aug, 2017 2 commits
  3. 24 Aug, 2017 2 commits
    • Bjorn Andersson's avatar
      of/device: Fix of_device_get_modalias() buffer handling · 8c2a75e5
      Bjorn Andersson authored
      of_device_request_module() calls of_device_get_modalias() with "len" 0,
      to calculate the size of the buffer needed to store the result, but due
      to integer promotion the ssize_t "len" will be compared as unsigned with
      strlen(compat) and the loop will generally never break. This results in
      a call to snprintf() with a negative len, which triggers below warning,
      followed by a dereference of a invalid pointer:
      
        [    3.060067] WARNING: CPU: 0 PID: 51 at lib/vsprintf.c:2122 vsnprintf+0x348/0x6d8
        ...
        [    3.060301] [<ffffff800891ede8>] vsnprintf+0x348/0x6d8
        [    3.060308] [<ffffff800891f248>] snprintf+0x48/0x50
        [    3.060316] [<ffffff80086a7c80>] of_device_get_modalias+0x108/0x160
        [    3.060322] [<ffffff80086a7cf8>] of_device_request_module+0x20/0x88
        ...
      
      Further more of_device_get_modalias() is supposed to return the number
      of bytes needed to store the entire modalias, so the loop needs to
      continue accumulate the total size even though the buffer is full.
      
      Finally the function is not expected to ensure space for the NUL, nor
      include it in the returned size, so only 1 should be added to the length
      of "compat" in the loop (to account for the character 'C').
      
      Fixes: bc575064 ("of/device: use of_property_for_each_string to parse compatible strings")
      Cc: Rob Herring <robh@kernel.org>
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      8c2a75e5
    • Bjorn Andersson's avatar
      of/device: Prevent buffer overflow in of_device_modalias() · 08ab58d9
      Bjorn Andersson authored
      As of_device_get_modalias() returns the number of bytes that would have
      been written to the target string, regardless of how much did fit in the
      buffer, it's possible that the returned index points beyond the buffer
      passed to of_device_modalias() - causing memory beyond the buffer to be
      null terminated.
      
      Fixes: 0634c295 ("of: Add function for generating a DT modalias with a newline")
      Cc: Rob Herring <robh@kernel.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      08ab58d9
  4. 23 Aug, 2017 2 commits
  5. 21 Aug, 2017 4 commits
  6. 17 Aug, 2017 1 commit
  7. 14 Aug, 2017 1 commit
  8. 10 Aug, 2017 1 commit
  9. 09 Aug, 2017 1 commit
  10. 03 Aug, 2017 1 commit
  11. 01 Aug, 2017 3 commits
  12. 24 Jul, 2017 6 commits
  13. 21 Jul, 2017 3 commits
  14. 20 Jul, 2017 3 commits
    • Frank Rowand's avatar
      of: overlay: add overlay symbols to live device tree · d1651b03
      Frank Rowand authored
      Add overlay __symbols__ properties to live tree when an overlay
      is added to the live tree so that the symbols are available to
      subsequent overlays.
      
      Expected test result is new __symbols__ entries for labels from
      the overlay after this commit.
      
      Before this commit:
      
         Console error message near end of unittest:
            ### dt-test ### FAIL of_unittest_overlay_high_level():2296 Adding overlay 'overlay_bad_symbol' failed
            ### dt-test ### end of unittest - 190 passed, 1 failed
      
         The new unittest "fails" because the expected result of loading the
         new overlay is an error instead of success.
      
         $ # node hvac-medium-2 exists because the overlay loaded
         $ # since the duplicate symbol was not detected
         $ cd /proc/device-tree/testcase-data-2/substation@100/
         $ ls
         compatible     hvac-medium-2  motor-8        reg
         hvac-large-1   linux,phandle  name           status
         hvac-medium-1  motor-1        phandle
      
         $ cd /proc/device-tree/__symbols__/
         $ ls
         electric_1   lights_1     name         rides_1      spin_ctrl_2
         hvac_1       lights_2     retail_1     spin_ctrl_1
      
      After this commit:
      
         Previous console error message no longer occurs, but expected error
         occurs:
            OF: overlay: Failed to apply prop @/__symbols__/hvac_1
            OF: overlay: apply failed '/__symbols__'
            ### dt-test ### end of unittest - 191 passed, 0 failed
      
         $ # node hvac-medium-2 does not exist because the overlay
         $ # properly failed to load due to the duplicate symbol
         $ cd /proc/device-tree/testcase-data-2/substation@100/
         $ ls
         compatible     hvac-medium-1  motor-1        name           reg
         hvac-large-1   linux,phandle  motor-8        phandle        status
      
         $ cd /proc/device-tree/__symbols__/
         $ ls
         electric_1      lights_1        retail_1        ride_200_right  spin_ctrl_2
         hvac_1          lights_2        ride_200        rides_1
         hvac_2          name            ride_200_left   spin_ctrl_1
         $ cat ride_200; echo
         /testcase-data-2/fairway-1/ride@200
         $ cat ride_200_left ; echo
         /testcase-data-2/fairway-1/ride@200/track@10
         $ cat ride_200_right ; echo
         /testcase-data-2/fairway-1/ride@200/track@20
      Signed-off-by: default avatarFrank Rowand <frank.rowand@sony.com>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      d1651b03
    • Frank Rowand's avatar
      of: overlay: correctly apply overlay node with unit-address · c1cd1e01
      Frank Rowand authored
      Correct existing node name detection when overlay node name has
      a unit-address.
      
      Expected test result is overlay will update the nodes and properties
      for /testcase-data-2/fairway-1/ride@100/ after this commit.
      
      Before this commit:
      
         Console error message near end of unittest:
            OF: Duplicate name in fairway-1, renamed to "ride@100#1"
      
         $ cd /proc/device-tree/testcase-data-2/fairway-1/
         $ # extra node: ride@100#1
         $ ls
         #address-cells  linux,phandle   phandle         ride@200
         #size-cells     name            ride@100        status
         compatible      orientation     ride@100#1
         $ cd /proc/device-tree/testcase-data-2/fairway-1/ride@100/
         $ ls track@30/incline-up
         ls: track@30/incline-up: No such file or directory
         $ ls track@40/incline-up
         ls: track@40/incline-up: No such file or directory
      
      After this commit:
      
         Console error message no longer occurs
      
         $ cd /proc/device-tree/testcase-data-2/fairway-1/
         $ # no extra node: ride@100#1
         $ ls
         #address-cells  compatible      name            phandle         ride@200
         #size-cells     linux,phandle   orientation     ride@100        status
         $ cd /proc/device-tree/testcase-data-2/fairway-1/ride@100/
         $ ls track@30/incline-up
         track@30/incline-up
         $ ls track@40/incline-up
         track@40/incline-up
      Signed-off-by: default avatarFrank Rowand <frank.rowand@sony.com>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      c1cd1e01
    • Frank Rowand's avatar
      of: overlay: add overlay unittest data for node names and symbols · 60a0004c
      Frank Rowand authored
      Add nodes and properties to overlay_base and overlay dts files to
      test for
         - incorrect existing node name detection when overlay node name
           has a unit-address
         - adding overlay __symbols__ properties to live tree when an
           overlay is added to the live tree
      
      The following console messages will appear near the end of unittest
      until the code errors are corrected:
      
         OF: Duplicate name in fairway-1, renamed to "ride@100#1"
      
         ### dt-test ### FAIL of_unittest_overlay_high_level():2296 Adding overlay 'overlay_bad_symbol' failed
      
         ### dt-test ### end of unittest - 190 passed, 1 failed
      Signed-off-by: default avatarFrank Rowand <frank.rowand@sony.com>
      Signed-off-by: default avatarRob Herring <robh@kernel.org>
      60a0004c
  15. 18 Jul, 2017 1 commit
  16. 17 Jul, 2017 5 commits
  17. 15 Jul, 2017 3 commits
    • Linus Torvalds's avatar
      Linux v4.13-rc1 · 5771a8c0
      Linus Torvalds authored
      5771a8c0
    • Linus Torvalds's avatar
      Merge tag 'standardize-docs' of git://git.lwn.net/linux · 486088bc
      Linus Torvalds authored
      Pull documentation format standardization from Jonathan Corbet:
       "This series converts a number of top-level documents to the RST format
        without incorporating them into the Sphinx tree. The hope is to bring
        some uniformity to kernel documentation and, perhaps more importantly,
        have our existing docs serve as an example of the desired formatting
        for those that will be added later.
      
        Mauro has gone through and fixed up a lot of top-level documentation
        files to make them conform to the RST format, but without moving or
        renaming them in any way. This will help when we incorporate the ones
        we want to keep into the Sphinx doctree, but the real purpose is to
        bring a bit of uniformity to our documentation and let the top-level
        docs serve as examples for those writing new ones"
      
      * tag 'standardize-docs' of git://git.lwn.net/linux: (84 commits)
        docs: kprobes.txt: Fix whitespacing
        tee.txt: standardize document format
        cgroup-v2.txt: standardize document format
        dell_rbu.txt: standardize document format
        zorro.txt: standardize document format
        xz.txt: standardize document format
        xillybus.txt: standardize document format
        vfio.txt: standardize document format
        vfio-mediated-device.txt: standardize document format
        unaligned-memory-access.txt: standardize document format
        this_cpu_ops.txt: standardize document format
        svga.txt: standardize document format
        static-keys.txt: standardize document format
        smsc_ece1099.txt: standardize document format
        SM501.txt: standardize document format
        siphash.txt: standardize document format
        sgi-ioc4.txt: standardize document format
        SAK.txt: standardize document format
        rpmsg.txt: standardize document format
        robust-futexes.txt: standardize document format
        ...
      486088bc
    • Linus Torvalds's avatar
      Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · 52f6c588
      Linus Torvalds authored
      Pull random updates from Ted Ts'o:
       "Add wait_for_random_bytes() and get_random_*_wait() functions so that
        callers can more safely get random bytes if they can block until the
        CRNG is initialized.
      
        Also print a warning if get_random_*() is called before the CRNG is
        initialized. By default, only one single-line warning will be printed
        per boot. If CONFIG_WARN_ALL_UNSEEDED_RANDOM is defined, then a
        warning will be printed for each function which tries to get random
        bytes before the CRNG is initialized. This can get spammy for certain
        architecture types, so it is not enabled by default"
      
      * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        random: reorder READ_ONCE() in get_random_uXX
        random: suppress spammy warnings about unseeded randomness
        random: warn when kernel uses unseeded randomness
        net/route: use get_random_int for random counter
        net/neighbor: use get_random_u32 for 32-bit hash random
        rhashtable: use get_random_u32 for hash_rnd
        ceph: ensure RNG is seeded before using
        iscsi: ensure RNG is seeded before use
        cifs: use get_random_u32 for 32-bit lock random
        random: add get_random_{bytes,u32,u64,int,long,once}_wait family
        random: add wait_for_random_bytes() API
      52f6c588