diff mbox

scsi-disk: Use (unsigned long) typecasts when using "%lu" format string

Message ID 1465805418-15906-1-git-send-email-thuth@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Thomas Huth June 13, 2016, 8:10 a.m. UTC
Some source code analyzers like cppcheck spill out a warning if
the sign of the argument does not match the format string.

Ticket: https://bugs.launchpad.net/qemu/+bug/1589564
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/scsi/scsi-disk.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Paolo Bonzini June 13, 2016, 10:03 a.m. UTC | #1
On 13/06/2016 10:10, Thomas Huth wrote:
> Some source code analyzers like cppcheck spill out a warning if
> the sign of the argument does not match the format string.
> 
> Ticket: https://bugs.launchpad.net/qemu/+bug/1589564
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  hw/scsi/scsi-disk.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index 1881969..36f8a85 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c
> @@ -2060,13 +2060,13 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
>          }
>          break;
>      case MODE_SELECT:
> -        DPRINTF("Mode Select(6) (len %lu)\n", (long)r->req.cmd.xfer);
> +        DPRINTF("Mode Select(6) (len %lu)\n", (unsigned long)r->req.cmd.xfer);
>          break;
>      case MODE_SELECT_10:
> -        DPRINTF("Mode Select(10) (len %lu)\n", (long)r->req.cmd.xfer);
> +        DPRINTF("Mode Select(10) (len %lu)\n", (unsigned long)r->req.cmd.xfer);
>          break;
>      case UNMAP:
> -        DPRINTF("Unmap (len %lu)\n", (long)r->req.cmd.xfer);
> +        DPRINTF("Unmap (len %lu)\n", (unsigned long)r->req.cmd.xfer);
>          break;
>      case VERIFY_10:
>      case VERIFY_12:
> @@ -2080,7 +2080,7 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
>      case WRITE_SAME_16:
>          DPRINTF("WRITE SAME %d (len %lu)\n",
>                  req->cmd.buf[0] == WRITE_SAME_10 ? 10 : 16,
> -                (long)r->req.cmd.xfer);
> +                (unsigned long)r->req.cmd.xfer);
>          break;
>      default:
>          DPRINTF("Unknown SCSI command (%2.2x=%s)\n", buf[0],
> 

Queued, thanks.

Paolo
Eric Blake June 13, 2016, 3:27 p.m. UTC | #2
On 06/13/2016 02:10 AM, Thomas Huth wrote:
> Some source code analyzers like cppcheck spill out a warning if
> the sign of the argument does not match the format string.
> 
> Ticket: https://bugs.launchpad.net/qemu/+bug/1589564
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  hw/scsi/scsi-disk.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
> index 1881969..36f8a85 100644
> --- a/hw/scsi/scsi-disk.c
> +++ b/hw/scsi/scsi-disk.c
> @@ -2060,13 +2060,13 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
>          }
>          break;
>      case MODE_SELECT:
> -        DPRINTF("Mode Select(6) (len %lu)\n", (long)r->req.cmd.xfer);
> +        DPRINTF("Mode Select(6) (len %lu)\n", (unsigned long)r->req.cmd.xfer);

Why do we need a cast in the first place?  r->req.cmd.xfer is size_t, so
why not just "Mode Select(6) (len %zu)\n", r->req.cmd.xfer)?
Thomas Huth June 13, 2016, 4 p.m. UTC | #3
On 13.06.2016 17:27, Eric Blake wrote:
> On 06/13/2016 02:10 AM, Thomas Huth wrote:
>> Some source code analyzers like cppcheck spill out a warning if
>> the sign of the argument does not match the format string.
>>
>> Ticket: https://bugs.launchpad.net/qemu/+bug/1589564
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>  hw/scsi/scsi-disk.c | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
>> index 1881969..36f8a85 100644
>> --- a/hw/scsi/scsi-disk.c
>> +++ b/hw/scsi/scsi-disk.c
>> @@ -2060,13 +2060,13 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
>>          }
>>          break;
>>      case MODE_SELECT:
>> -        DPRINTF("Mode Select(6) (len %lu)\n", (long)r->req.cmd.xfer);
>> +        DPRINTF("Mode Select(6) (len %lu)\n", (unsigned long)r->req.cmd.xfer);
> 
> Why do we need a cast in the first place?  r->req.cmd.xfer is size_t, so
> why not just "Mode Select(6) (len %zu)\n", r->req.cmd.xfer)?

That sounds good, too. Do you want to provide a patch, or shall I do a
v2 of my patch?

 Thomas
Eric Blake June 13, 2016, 4:04 p.m. UTC | #4
On 06/13/2016 10:00 AM, Thomas Huth wrote:
> On 13.06.2016 17:27, Eric Blake wrote:
>> On 06/13/2016 02:10 AM, Thomas Huth wrote:
>>> Some source code analyzers like cppcheck spill out a warning if
>>> the sign of the argument does not match the format string.
>>>
>>> Ticket: https://bugs.launchpad.net/qemu/+bug/1589564
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>>  hw/scsi/scsi-disk.c | 8 ++++----
>>>  1 file changed, 4 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
>>> index 1881969..36f8a85 100644
>>> --- a/hw/scsi/scsi-disk.c
>>> +++ b/hw/scsi/scsi-disk.c
>>> @@ -2060,13 +2060,13 @@ static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
>>>          }
>>>          break;
>>>      case MODE_SELECT:
>>> -        DPRINTF("Mode Select(6) (len %lu)\n", (long)r->req.cmd.xfer);
>>> +        DPRINTF("Mode Select(6) (len %lu)\n", (unsigned long)r->req.cmd.xfer);
>>
>> Why do we need a cast in the first place?  r->req.cmd.xfer is size_t, so
>> why not just "Mode Select(6) (len %zu)\n", r->req.cmd.xfer)?
> 
> That sounds good, too. Do you want to provide a patch, or shall I do a
> v2 of my patch?

Up to Paolo, since he's already queued v1.
diff mbox

Patch

diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 1881969..36f8a85 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -2060,13 +2060,13 @@  static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
         }
         break;
     case MODE_SELECT:
-        DPRINTF("Mode Select(6) (len %lu)\n", (long)r->req.cmd.xfer);
+        DPRINTF("Mode Select(6) (len %lu)\n", (unsigned long)r->req.cmd.xfer);
         break;
     case MODE_SELECT_10:
-        DPRINTF("Mode Select(10) (len %lu)\n", (long)r->req.cmd.xfer);
+        DPRINTF("Mode Select(10) (len %lu)\n", (unsigned long)r->req.cmd.xfer);
         break;
     case UNMAP:
-        DPRINTF("Unmap (len %lu)\n", (long)r->req.cmd.xfer);
+        DPRINTF("Unmap (len %lu)\n", (unsigned long)r->req.cmd.xfer);
         break;
     case VERIFY_10:
     case VERIFY_12:
@@ -2080,7 +2080,7 @@  static int32_t scsi_disk_emulate_command(SCSIRequest *req, uint8_t *buf)
     case WRITE_SAME_16:
         DPRINTF("WRITE SAME %d (len %lu)\n",
                 req->cmd.buf[0] == WRITE_SAME_10 ? 10 : 16,
-                (long)r->req.cmd.xfer);
+                (unsigned long)r->req.cmd.xfer);
         break;
     default:
         DPRINTF("Unknown SCSI command (%2.2x=%s)\n", buf[0],