Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1335910

Re: [PATCH v2] arm64: add alignment fault hanling

From Catalin Marinas <catalin.marinas@arm.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2] arm64: add alignment fault hanling
Date 2016-02-17 00:10 +0100
Message-ID <r2WUO-6a6-5@gated-at.bofh.it> (permalink)
References (3 earlier) <r2MVs-7Lj-3@gated-at.bofh.it> <r2Qmn-1Is-29@gated-at.bofh.it> <r2Rip-2mN-1@gated-at.bofh.it> <r2T0S-3ha-3@gated-at.bofh.it> <r2VvI-530-37@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, Feb 16, 2016 at 01:31:36PM -0800, Arjan van de Ven wrote:
> On 2/16/2016 10:50 AM, Linus Torvalds wrote:
> >On Tue, Feb 16, 2016 at 9:04 AM, Will Deacon <will.deacon@arm.com> wrote:
> >>[replying to self and adding some x86 people]
> >>
> >>Background: Euntaik reports a problem where userspace has ended up with
> >>a memory page mapped adjacent to an MMIO page (e.g. from /dev/mem or a
> >>PCI memory bar from someplace in /sys). strncpy_from_user happens with
> >>the word-at-a-time implementation, and we end up reading into the MMIO
> >>page.
> 
> how does this work if the adjacent page is not accessible?

do_strncpy_from_user() assumes by default that it can read a word at a
time using get_user() but checks its return value in case it failed and
falls back to byte at a time. What happens on arm64 is that for
alignment faults we don't have a handler that would search the exception
table and run the get_user() fixup.

> isn't the general rule for such basic functions "don't touch memory
> unless you KNOW it is there"

Well, user access routines are in general safe with this via the
exception handling + fixup mechanism (which usually returns -EFAULT).
That's what do_strncpy_from_user() tries to do by optimising away the
boundary checks.

-- 
Catalin

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2] arm64: add alignment fault hanling EunTaik Lee <eun.taik.lee@samsung.com> - 2016-02-16 05:50 +0100
  Re: [PATCH v2] arm64: add alignment fault hanling Will Deacon <will.deacon@arm.com> - 2016-02-16 11:40 +0100
    Re: [PATCH v2] arm64: add alignment fault hanling Robin Murphy <robin.murphy@arm.com> - 2016-02-16 12:00 +0100
      Re: [PATCH v2] arm64: add alignment fault hanling Catalin Marinas <catalin.marinas@arm.com> - 2016-02-16 13:30 +0100
        Re: [PATCH v2] arm64: add alignment fault hanling Will Deacon <will.deacon@arm.com> - 2016-02-16 17:10 +0100
          Re: [PATCH v2] arm64: add alignment fault hanling Will Deacon <will.deacon@arm.com> - 2016-02-16 18:10 +0100
            Re: [PATCH v2] arm64: add alignment fault hanling Linus Torvalds <torvalds@linux-foundation.org> - 2016-02-16 20:00 +0100
              Re: [PATCH v2] arm64: add alignment fault hanling Arjan van de Ven <arjan@linux.intel.com> - 2016-02-16 22:40 +0100
                Re: [PATCH v2] arm64: add alignment fault hanling Catalin Marinas <catalin.marinas@arm.com> - 2016-02-17 00:10 +0100
                Re: [PATCH v2] arm64: add alignment fault hanling Linus Torvalds <torvalds@linux-foundation.org> - 2016-02-17 01:30 +0100
              Re: [PATCH v2] arm64: add alignment fault hanling Catalin Marinas <catalin.marinas@arm.com> - 2016-02-19 19:20 +0100
                Re: [PATCH v2] arm64: add alignment fault hanling Linus Torvalds <torvalds@linux-foundation.org> - 2016-02-19 23:10 +0100
          Re: [PATCH v2] arm64: add alignment fault hanling Catalin Marinas <catalin.marinas@arm.com> - 2016-02-16 18:20 +0100
  Re: [PATCH v2] arm64: add alignment fault hanling Catalin Marinas <catalin.marinas@arm.com> - 2016-02-16 18:20 +0100

csiph-web