[libvirt] [PATCH 7/8] qemu: Resolve Coverity BAD_SIZEOF

Peter Krempa pkrempa at redhat.com
Mon Sep 15 08:09:25 UTC 2014


On 09/13/14 15:27, John Ferlan wrote:
> Coverity complains about the calculation of the buf & len within
> the PROBE macro.  So to quiet things down, do the calculation prior
> to usage in either write() or qemuMonitorIOWriteWithFD() calls and
> then have the PROBE use the calculated values - which works.
> 
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
>  src/qemu/qemu_monitor.c | 18 +++++++-----------
>  1 file changed, 7 insertions(+), 11 deletions(-)
> 
> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index 6059133..80c6ef8 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -478,6 +478,8 @@ static int
>  qemuMonitorIOWrite(qemuMonitorPtr mon)
>  {
>      int done;
> +    char *buf;
> +    int len;

len should be "size_t"

>  
>      /* If no active message, or fully transmitted, the no-op */
>      if (!mon->msg || mon->msg->txOffset == mon->msg->txLength)
> @@ -489,22 +491,16 @@ qemuMonitorIOWrite(qemuMonitorPtr mon)
>          return -1;
>      }
>  
> +    buf = mon->msg->txBuffer + mon->msg->txOffset;
> +    len = mon->msg->txLength - mon->msg->txOffset;
>      if (mon->msg->txFD == -1)
> -        done = write(mon->fd,
> -                     mon->msg->txBuffer + mon->msg->txOffset,
> -                     mon->msg->txLength - mon->msg->txOffset);
> +        done = write(mon->fd, buf, len);
>      else
> -        done = qemuMonitorIOWriteWithFD(mon,
> -                                        mon->msg->txBuffer + mon->msg->txOffset,
> -                                        mon->msg->txLength - mon->msg->txOffset,
> -                                        mon->msg->txFD);
> +        done = qemuMonitorIOWriteWithFD(mon, buf, len, mon->msg->txFD);
>  
>      PROBE(QEMU_MONITOR_IO_WRITE,
>            "mon=%p buf=%s len=%d ret=%d errno=%d",
> -          mon,
> -          mon->msg->txBuffer + mon->msg->txOffset,
> -          mon->msg->txLength - mon->msg->txOffset,
> -          done, errno);
> +          mon, buf, len, done, errno);
>  
>      if (mon->msg->txFD != -1) {
>          PROBE(QEMU_MONITOR_IO_SEND_FD,
> 

ACK with the type corrected.

Peter

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140915/e814f497/attachment-0001.sig>


More information about the libvir-list mailing list