[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved
From: |
Sascha Silbe |
Subject: |
Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved |
Date: |
Thu, 28 Jul 2016 12:35:58 +0200 |
User-agent: |
Notmuch/0.22.1~rc0 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-pc-linux-gnu) |
Dear Eric,
Eric Blake <address@hidden> writes:
>> +++ b/include/qapi/error.h
>> @@ -170,6 +170,9 @@ void error_setg_internal(Error **errp,
>> * Just like error_setg(), with @os_error info added to the message.
>> * If @os_error is non-zero, ": " + strerror(os_error) is appended to
>> * the human-readable error message.
>> + *
>> + * The value of errno (which usually can get clobbered by almost any
>> + * function call) will be preserved.
>> */
>> #define error_setg_errno(errp, os_error, fmt, ...) \
>> error_setg_errno_internal((errp), __FILE__, __LINE__, __func__, \
>
> Do we need/want to make the guarantee of preserving errno across any of
> the other functions and macros declared in error.h?
It would be more consistent to have all error reporting functions
promise this, even if they do not get passed the errno. In some cases
the errno might not matter to the user (so error_setg_errno() isn't
used), but still be passed on to the caller to signal an error (so
clobbering it could be problematic).
Can prepare a follow-up patch that makes sure error_setg(),
error_propagate(), error_setg_file_open(), error_set() preserve
errno. Optionally also the other functions listed in
include/qapi/error.h and include/qemu/error-report.h.
Sascha
--
Softwareentwicklung Sascha Silbe, Niederhofenstraße 5/1, 71229 Leonberg
https://se-silbe.de/
USt-IdNr. DE281696641
- [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Sascha Silbe, 2016/07/27
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Markus Armbruster, 2016/07/27
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Eric Blake, 2016/07/27
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Markus Armbruster, 2016/07/28
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Halil Pasic, 2016/07/28
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Eric Blake, 2016/07/28
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Halil Pasic, 2016/07/28
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Eric Blake, 2016/07/28
- Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved, Halil Pasic, 2016/07/29
Re: [Qemu-devel] [PATCH] error: error_setg_errno(): errno gets preserved,
Sascha Silbe <=