diff mbox series

hw/rdma/vmw/pvrdma_dev_ring: Replace strncpy with pstrcpy

Message ID 20200318134849.237011-1-jusual@redhat.com (mailing list archive)
State New, archived
Headers show
Series hw/rdma/vmw/pvrdma_dev_ring: Replace strncpy with pstrcpy | expand

Commit Message

Julia Suvorova March 18, 2020, 1:48 p.m. UTC
ring->name is defined as 'char name[MAX_RING_NAME_SZ]'. Replace untruncated
strncpy with QEMU function.
This case prevented QEMU from compiling with --enable-sanitizers.

Signed-off-by: Julia Suvorova <jusual@redhat.com>
---
 hw/rdma/vmw/pvrdma_dev_ring.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Yuval Shaia March 20, 2020, 11:49 a.m. UTC | #1
Thanks,
Reviewed-by: Yuval Shaia <yuval.shaia.ml.gmail.com>

On Wed, 18 Mar 2020 at 15:49, Julia Suvorova <jusual@redhat.com> wrote:

> ring->name is defined as 'char name[MAX_RING_NAME_SZ]'. Replace untruncated
> strncpy with QEMU function.
> This case prevented QEMU from compiling with --enable-sanitizers.
>
> Signed-off-by: Julia Suvorova <jusual@redhat.com>
> ---
>  hw/rdma/vmw/pvrdma_dev_ring.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/hw/rdma/vmw/pvrdma_dev_ring.c b/hw/rdma/vmw/pvrdma_dev_ring.c
> index d7bc7f5ccc..c2b3dd70a9 100644
> --- a/hw/rdma/vmw/pvrdma_dev_ring.c
> +++ b/hw/rdma/vmw/pvrdma_dev_ring.c
> @@ -16,6 +16,7 @@
>  #include "qemu/osdep.h"
>  #include "hw/pci/pci.h"
>  #include "cpu.h"
> +#include "qemu/cutils.h"
>
>  #include "trace.h"
>
> @@ -30,8 +31,7 @@ int pvrdma_ring_init(PvrdmaRing *ring, const char *name,
> PCIDevice *dev,
>      int i;
>      int rc = 0;
>
> -    strncpy(ring->name, name, MAX_RING_NAME_SZ);
> -    ring->name[MAX_RING_NAME_SZ - 1] = 0;
> +    pstrcpy(ring->name, MAX_RING_NAME_SZ, name);
>      ring->dev = dev;
>      ring->ring_state = ring_state;
>      ring->max_elems = max_elems;
> --
> 2.24.1
>
>
Stefan Hajnoczi March 20, 2020, 3:20 p.m. UTC | #2
On Wed, Mar 18, 2020 at 02:48:49PM +0100, Julia Suvorova wrote:
> ring->name is defined as 'char name[MAX_RING_NAME_SZ]'. Replace untruncated
> strncpy with QEMU function.
> This case prevented QEMU from compiling with --enable-sanitizers.
> 
> Signed-off-by: Julia Suvorova <jusual@redhat.com>
> ---
>  hw/rdma/vmw/pvrdma_dev_ring.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Here is my equivalent patch
<20200316160702.478964-3-stefanha@redhat.com> but feel free to merge
this.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Julia Suvorova March 20, 2020, 5:30 p.m. UTC | #3
On Fri, Mar 20, 2020 at 4:20 PM Stefan Hajnoczi <stefanha@gmail.com> wrote:
>
> On Wed, Mar 18, 2020 at 02:48:49PM +0100, Julia Suvorova wrote:
> > ring->name is defined as 'char name[MAX_RING_NAME_SZ]'. Replace untruncated
> > strncpy with QEMU function.
> > This case prevented QEMU from compiling with --enable-sanitizers.
> >
> > Signed-off-by: Julia Suvorova <jusual@redhat.com>
> > ---
> >  hw/rdma/vmw/pvrdma_dev_ring.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
>
> Here is my equivalent patch
> <20200316160702.478964-3-stefanha@redhat.com> but feel free to merge
> this.

Oops, sorry, I guess I didn't search carefully enough for the solution.

> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
diff mbox series

Patch

diff --git a/hw/rdma/vmw/pvrdma_dev_ring.c b/hw/rdma/vmw/pvrdma_dev_ring.c
index d7bc7f5ccc..c2b3dd70a9 100644
--- a/hw/rdma/vmw/pvrdma_dev_ring.c
+++ b/hw/rdma/vmw/pvrdma_dev_ring.c
@@ -16,6 +16,7 @@ 
 #include "qemu/osdep.h"
 #include "hw/pci/pci.h"
 #include "cpu.h"
+#include "qemu/cutils.h"
 
 #include "trace.h"
 
@@ -30,8 +31,7 @@  int pvrdma_ring_init(PvrdmaRing *ring, const char *name, PCIDevice *dev,
     int i;
     int rc = 0;
 
-    strncpy(ring->name, name, MAX_RING_NAME_SZ);
-    ring->name[MAX_RING_NAME_SZ - 1] = 0;
+    pstrcpy(ring->name, MAX_RING_NAME_SZ, name);
     ring->dev = dev;
     ring->ring_state = ring_state;
     ring->max_elems = max_elems;