From: Anthony Liguori <aliguori@us.ibm.com>
To: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Cc: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk>,
xen-devel <xen-devel@lists.sourceforge.net>
Subject: Re: [PATCH] libxen-3.0 (libxc rewrite)
Date: Tue, 22 Mar 2005 11:53:54 -0600 [thread overview]
Message-ID: <42405BB2.8040604@us.ibm.com> (raw)
In-Reply-To: <20050322174739.GT31328@cl.cam.ac.uk>
Christian Limpach wrote:
>So far your only point for not using errno has been that the programmer
>can inadvertently overwrite it by calling a function which resets it before
>using its value. But even that now seems a moot point since it can still
>happen with the 2nd type of functions. What's your problem with errno?
>
>
It's too easy to overwrite. Error paths are rarely invoked so if you're
overwriting errno in your error path the chances of you realizing you're
doing that is low.
This is a real problem. If you don't believe me, look at libxc. In
fact, the first file I opened, xc_private.c, has that problem exact
problem in the first function (xc_map_foreign_batch()). If the function
fails for any reason, it does cleanup (while also calling perror). The
cleanup function (munmap) will squash errno.
This function would have to save errno after the ioctl, then restore it
after the cleanup was done. That's ugly and most programmers don't
think to do it.
Regards,
Anthony Liguori
> christian
>
>
>
>
-------------------------------------------------------
This SF.net email is sponsored by: 2005 Windows Mobile Application Contest
Submit applications for Windows Mobile(tm)-based Pocket PCs or Smartphones
for the chance to win $25,000 and application distribution. Enter today at
http://ads.osdn.com/?ad_id=6882&alloc_id=15148&op=click
next prev parent reply other threads:[~2005-03-22 17:53 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-21 21:25 [PATCH] libxen-3.0 (libxc rewrite) Anthony Liguori
2005-03-22 3:33 ` Jacob Gorm Hansen
2005-03-22 4:24 ` Anthony Liguori
2005-03-22 19:28 ` Adam Heath
2005-03-22 20:12 ` Jacob Gorm Hansen
2005-03-22 11:02 ` Christian Limpach
2005-03-22 15:04 ` Anthony Liguori
2005-03-22 16:01 ` Christian Limpach
2005-03-22 16:06 ` Anthony Liguori
2005-03-22 16:13 ` Christian Limpach
2005-03-22 16:21 ` Anthony Liguori
2005-03-22 16:41 ` Christian Limpach
2005-03-22 17:05 ` Anthony Liguori
2005-03-22 17:28 ` Keir Fraser
2005-03-22 17:32 ` Ronald G. Minnich
2005-03-22 17:47 ` Christian Limpach
2005-03-22 17:53 ` Anthony Liguori [this message]
2005-03-22 13:50 ` Keir Fraser
2005-03-22 15:16 ` Anthony Liguori
-- strict thread matches above, loose matches on Subject: below --
2005-03-22 9:01 Ian Pratt
2005-03-22 15:03 ` Anthony Liguori
[not found] ` <1111504492.20157.26.camel@bree.local.net>
2005-03-22 15:18 ` Anthony Liguori
2005-03-22 15:31 ` Jeremy Katz
2005-03-22 15:55 ` Anthony Liguori
2005-03-22 16:25 ` Jeremy Katz
2005-03-22 21:58 ` Jeremy Katz
2005-03-22 22:18 ` Anthony Liguori
2005-03-22 15:13 Ian Pratt
2005-03-22 16:00 Ian Pratt
2005-03-22 16:13 ` Anthony Liguori
2005-03-22 16:29 ` Nivedita Singhvi
2005-03-22 16:34 ` Anthony Liguori
2005-03-22 16:39 ` Steven Hand
2005-03-22 16:25 Ian Pratt
2005-03-22 17:21 Ian Pratt
2005-03-22 17:31 ` Anthony Liguori
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=42405BB2.8040604@us.ibm.com \
--to=aliguori@us.ibm.com \
--cc=Christian.Limpach@cl.cam.ac.uk \
--cc=m+Ian.Pratt@cl.cam.ac.uk \
--cc=xen-devel@lists.sourceforge.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.