linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Baron <jbaron@redhat.com>
To: Robert Hancock <hancockr@shaw.ca>
Cc: akpm@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: make PROT_WRITE imply PROT_READ
Date: Fri, 23 Jun 2006 09:39:12 -0400 (EDT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0606230934360.24102@dhcp83-5.boston.redhat.com> (raw)
In-Reply-To: <449B42B3.6010908@shaw.ca>


On Thu, 22 Jun 2006, Robert Hancock wrote:

> Jason Baron wrote:
> > Currently, if i mmap() a file PROT_WRITE only and then first read from it
> > and then write to it, i get a SEGV. However, if i write to it first and then
> > read from it, i get no SEGV. This seems rather inconsistent.
> > 
> > The current implementation seems to be to make PROT_WRITE imply PROT_READ,
> > however it does not quite work correctly. The patch below resolves this
> > issue, by explicitly setting the PROT_READ flag when PROT_WRITE is
> > requested.
> 
> I would disagree.. the kernel is enforcing the permissions specified where the
> CPU architecture allows it. There is no sense in breaking this everywhere just
> because we can't always enforce it. By that logic we should be making
> PROT_READ imply PROT_EXEC because not all CPUs can enforce them separately,
> which makes no sense at all.
> 
> > 
> > This might appear at first as a possible permissions subversion, as i could
> > get PROT_READ on a file that i only have write permission to...however, the
> > mmap implementation requires that the file be opened with at least read
> > access already. Thus, i don't believe there is any issue with regards to
> > permissions.
> > 
> > Another consequenece of this patch is that it forces PROT_READ even for
> > architectures that might be able to support it, (I know that x86, x86_64 and
> > ia64 do not) but i think this is best for portability.
> 
> That makes little sense to me.. if you want portability, and you're reading
> from the file, you better request PROT_READ. Any app that doesn't do that is
> inherently broken and non-portable regardless of what you do to the kernel.
> 
> 


hi,

So if i create a PROT_WRITE only mapping and then read from first and then 
writte to it a get a SEGV. However, if i write to it first and then read 
from it, i don't get a SEGV...Why should the read/write ordering matter? 

thanks,

-Jason 


  reply	other threads:[~2006-06-23 13:57 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <fa.PuMM6IwflUYh1MWILO9rb6z4fvY@ifi.uio.no>
2006-06-23  1:24 ` make PROT_WRITE imply PROT_READ Robert Hancock
2006-06-23 13:39   ` Jason Baron [this message]
2006-06-23 14:06     ` Arjan van de Ven
2006-06-23 14:05       ` Jason Baron
2006-06-23 14:18         ` Arjan van de Ven
2006-06-24 18:45           ` Ulrich Drepper
2006-06-27  9:56             ` Pavel Machek
2006-06-27 12:18               ` Arjan van de Ven
2006-06-28 16:43               ` Ulrich Drepper
2006-06-28 19:49                 ` Pavel Machek
2006-06-28 20:05                   ` Chase Venters
2006-06-28 23:47                   ` Ulrich Drepper
2006-06-29  7:30                     ` Pavel Machek
2006-06-29 11:58                       ` Alan Cox
2006-06-29 17:20                         ` Pavel Machek
2006-06-29 21:00                           ` Jason Baron
2006-07-07  2:05                             ` Jason Baron
2006-06-30  3:49                       ` Ulrich Drepper
2006-06-29  8:15                 ` Arjan van de Ven
2006-06-30  3:48                   ` Ulrich Drepper
2006-06-30  8:35                     ` Arjan van de Ven
2006-06-30 12:20                       ` Alan Cox
     [not found] <6qIEW-1Tx-23@gated-at.bofh.it>
     [not found] ` <6qIEW-1Tx-21@gated-at.bofh.it>
     [not found]   ` <6qUwd-2Aq-9@gated-at.bofh.it>
     [not found]     ` <6qUwd-2Aq-7@gated-at.bofh.it>
     [not found]       ` <6qUFV-2N8-13@gated-at.bofh.it>
     [not found]         ` <6qUFY-2N8-33@gated-at.bofh.it>
     [not found]           ` <6rlmT-8op-37@gated-at.bofh.it>
     [not found]             ` <6siwJ-3dC-5@gated-at.bofh.it>
     [not found]               ` <6sLoY-4GV-31@gated-at.bofh.it>
     [not found]                 ` <6sZUS-V5-19@gated-at.bofh.it>
     [not found]                   ` <6tib4-2wA-3@gated-at.bofh.it>
     [not found]                     ` <6tmHL-Oq-5@gated-at.bofh.it>
     [not found]                       ` <6tpZ7-5Tj-13@gated-at.bofh.it>
2006-07-01 13:19                         ` Bodo Eggert
2006-07-02  9:56                           ` Alan Cox
2006-07-02 22:04                             ` Bodo Eggert
2006-06-22 17:33 Jason Baron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0606230934360.24102@dhcp83-5.boston.redhat.com \
    --to=jbaron@redhat.com \
    --cc=akpm@osdl.org \
    --cc=hancockr@shaw.ca \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).