From: Stefan Weil <weil@mail.berlios.de>
To: Blue Swirl <blauwirbel@gmail.com>
Cc: Kevin Wolf <kwolf@redhat.com>, QEMU Developers <qemu-devel@nongnu.org>
Subject: [Qemu-devel] Re: [PATCH] block: Use GCC_FMT_ATTR and fix a format error
Date: Thu, 23 Sep 2010 23:23:10 +0200 [thread overview]
Message-ID: <4C9BC53E.1010509@mail.berlios.de> (raw)
In-Reply-To: <AANLkTi=xHbw=L7J2TB4FREG9TH2hjXH4CKMUbUQpJQqr@mail.gmail.com>
Am 23.09.2010 22:24, schrieb Blue Swirl:
> On Thu, Sep 23, 2010 at 7:11 PM, Stefan Weil <weil@mail.berlios.de> wrote:
>> Am 23.09.2010 21:03, schrieb Stefan Weil:
>>>
>>> Am 23.09.2010 20:53, schrieb Blue Swirl:
>>>>
>>>> On Thu, Sep 23, 2010 at 6:37 PM, Stefan Weil<weil@mail.berlios.de>
>>>> wrote:
>>>>>
>>>>> Adding the gcc format attribute detects a format bug
>>>>> which is fixed here.
>>>>>
>>>>> Cc: Blue Swirl<blauwirbel@gmail.com>
>>>>> Cc: Kevin Wolf<kwolf@redhat.com>
>>>>> Signed-off-by: Stefan Weil<weil@mail.berlios.de>
>>>>> ---
>>>>> block/blkverify.c | 5 +++--
>>>>> 1 files changed, 3 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/block/blkverify.c b/block/blkverify.c
>>>>> index 8083464..b39fb67 100644
>>>>> --- a/block/blkverify.c
>>>>> +++ b/block/blkverify.c
>>>>> @@ -53,7 +53,8 @@ static AIOPool blkverify_aio_pool = {
>>>>> .cancel = blkverify_aio_cancel,
>>>>> };
>>>>>
>>>>> -static void blkverify_err(BlkverifyAIOCB *acb, const char *fmt, ...)
>>>>> +static void GCC_FMT_ATTR(2, 3) blkverify_err(BlkverifyAIOCB *acb,
>>>>> + const char *fmt, ...)
>>>>> {
>>>>> va_list ap;
>>>>>
>>>>> @@ -300,7 +301,7 @@ static void blkverify_verify_readv(BlkverifyAIOCB
>>>>> *acb)
>>>>> ssize_t offset =
>>>>> blkverify_iovec_compare(acb->qiov,&acb->raw_qiov);
>>>>> if (offset != -1) {
>>>>> blkverify_err(acb, "contents mismatch in sector %ld",
>>>>> - acb->sector_num + (offset / BDRV_SECTOR_SIZE));
>>>>> + (long)(acb->sector_num + (offset /
>>>>> BDRV_SECTOR_SIZE)));
>>>>
>>>> sector_num is int64_t, so the correct fix is to change '%ld' to '%"
>>>> PRId64'.
>>>>
>>>
>>> I noticed that, too. But offset is ssize_t.
>>> Can you always be sure that (int64_t + ssize_t) results in a int64_t?
>>> I don't think it's so easy.
>>
>> I think you are correct, the format should use PRId64.
>> The type cast is still necessary, but should cast to int64_t.
>> (needed when int64_t == long and ssize_t == long long).
>>
>> If you agree, I'll send a new patch.
>
> It's also possible to cast offset to int64_t. Or perhaps even the type
> of the return value of blkverify_iovec_compare should be changed to
> int64_t.
Unless BDRV_SECTOR_SIZE is changed, too, this would
still need a type cast. So we have two possible solutions:
(1) Use %lld (should work because BDRV_SECTOR_SIZE is unsigned long long).
(2) Use PRId64. This needs changes for BDRV_SECTOR_SIZE and
blkverify_iovec_compare.
Any preferences? I tend to (2), but that change is less local.
next prev parent reply other threads:[~2010-09-23 21:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-23 18:37 [Qemu-devel] [PATCH] block: Use GCC_FMT_ATTR and fix a format error Stefan Weil
2010-09-23 18:53 ` [Qemu-devel] " Blue Swirl
2010-09-23 19:03 ` Stefan Weil
2010-09-23 19:11 ` Stefan Weil
2010-09-23 20:24 ` Blue Swirl
2010-09-23 21:23 ` Stefan Weil [this message]
2010-09-24 19:02 ` [Qemu-devel] " Stefan Weil
2010-09-25 8:01 ` [Qemu-devel] " Blue Swirl
2010-09-25 11:59 ` Stefan Weil
2010-10-13 19:06 ` Stefan Weil
2010-10-14 8:11 ` Kevin Wolf
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=4C9BC53E.1010509@mail.berlios.de \
--to=weil@mail.berlios.de \
--cc=blauwirbel@gmail.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.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 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.