[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/1] s390x/s390-virtio-ccw: fix off-by-one in loadparm getter
From: |
Halil Pasic |
Subject: |
[PATCH 1/1] s390x/s390-virtio-ccw: fix off-by-one in loadparm getter |
Date: |
Wed, 29 Jul 2020 15:02:22 +0200 |
As pointed out by Peter, g_memdup(ms->loadparm, sizeof(ms->loadparm) + 1)
reads one past of the end of ms->loadparm, so g_memdup() can not be used
here.
Let's use malloc and memcpy instead!
Fixes: d664548328 ("s390x/s390-virtio-ccw: fix loadparm property getter")
Fixes: Coverity CID 1431058
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Halil Pasic <pasic@linux.ibm.com>
---
hw/s390x/s390-virtio-ccw.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c
index 403d30e13b..8b7bac0392 100644
--- a/hw/s390x/s390-virtio-ccw.c
+++ b/hw/s390x/s390-virtio-ccw.c
@@ -704,8 +704,8 @@ static char *machine_get_loadparm(Object *obj, Error **errp)
char *loadparm_str;
/* make a NUL-terminated string */
- loadparm_str = g_memdup(ms->loadparm, sizeof(ms->loadparm) + 1);
- loadparm_str[sizeof(ms->loadparm)] = 0;
+ loadparm_str = g_malloc0(sizeof(ms->loadparm) + 1);
+ memcpy(loadparm_str, ms->loadparm, sizeof(ms->loadparm));
return loadparm_str;
}
base-commit: 5772f2b1fc5d00e7e04e01fa28e9081d6550440a
--
2.17.1
- [PATCH 1/1] s390x/s390-virtio-ccw: fix off-by-one in loadparm getter,
Halil Pasic <=