mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Andrew V. Samoilov" <kai@cmail.ru>
To: Jamie Lokier <lk@tantalophile.demon.co.uk>,
	"Andrew V. Samoilov" <kai@cmail.ru>,
	linux-kernel@vger.kernel.org
Subject: Re: mmap successed but SIGBUS generated on access
Date: Wed, 19 Sep 2001 20:57:25 +0400	[thread overview]
Message-ID: <200109191657.f8JGvPJ06663@cmail.ru> (raw)

Hi, Jamie!

Thanks for an answer!

>> I have bad CD-R with a some number of unreadable
files.
>> 
>> Then user-space program use mmap system it returns ok
but any
>> attempt to access a memory pointed by this system
call finishes 
>> with SIGBUS. So Midnight Commander internal file
viewer faults.
>
>You can get the same problem even without read errors
with some
>configurations of NFS.  (root mmaps a file owned by
someone else, but
>cannot read the file due to `root_squash' on server).
>
>It's not an error, it's standard behaviour.

Well.

>> Is there any way to detect such problem in user-space
without signal
>> handlers ?
>
>I don't think there is any way without a signal
handler.
>
>It is possible to do something useful with a signal
handler sometimes.
>For example, you can mmap() a zero page into the
offending page once
>you've got the fault address, or read() a zero page if
you did
>MAP_PRIVATE (this produces fewer VMAs), set a flag, and
let the program
>continue until it checks the flag and aborts the
parsing or whatever
>operation it's doing.

So, I must read all of the mapped area and even this
does not saves me of faulting next time if somebody
change file permission. Does I understand this situation
right?

>Unfortunately I don't think the signal handler's
si_errno is set
>properly to indicate the error.  So another thing to
try is read() of
>the offending page, to get a useful error code.  (And
if the read
>succeeds, that's ok because you did it at the correct
address so the
>program can proceed anyway).
>
>Fwiw, unfortunately not all versions of the kernel, or
all
>architectures, set si_addr properly for SIGBUS.

It's pity. But thanks again.

--
Regards,
Andrew.

____________________________________________

Играй в шахматы в Интернет на InstantChess.com! 

Play chess on InstantChess.com !

www.instantchess.com



             reply	other threads:[~2001-09-19 16:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-09-19 16:57 Andrew V. Samoilov [this message]
2001-09-19 22:51 ` Jamie Lokier
  -- strict thread matches above, loose matches on Subject: below --
2001-09-19 10:36 Andrew V. Samoilov
2001-09-19 13:00 ` Jamie Lokier

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=200109191657.f8JGvPJ06663@cmail.ru \
    --to=kai@cmail.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lk@tantalophile.demon.co.uk \
    /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

all inboxes | Powered by JetHome®