[libvirt] [PATCH] completer: Doesn't alloc enough space for null terminated array of strings

Functions virshSecretEventNameCompleter, virshPoolEventNameCompleter, virshNodedevEventNameCompleter allocates only enough space for array of N strings. However these are null terminated strings, so program needs to alloc space for array of N+1 strings. How to replicate error: valgrind virsh, use completer for '-nodedev-event --event' or '-pool-event --event' or '-secret-event --event'. --- tools/virsh-completer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/virsh-completer.c b/tools/virsh-completer.c index 2327e08340..be59ea2e82 100644 --- a/tools/virsh-completer.c +++ b/tools/virsh-completer.c @@ -709,7 +709,7 @@ virshSecretEventNameCompleter(vshControl *ctl ATTRIBUTE_UNUSED, virCheckFlags(0, NULL); - if (VIR_ALLOC_N(ret, VIR_SECRET_EVENT_ID_LAST) < 0) + if (VIR_ALLOC_N(ret, VIR_SECRET_EVENT_ID_LAST + 1) < 0) goto error; for (i = 0; i < VIR_SECRET_EVENT_ID_LAST; i++) { @@ -761,7 +761,7 @@ virshPoolEventNameCompleter(vshControl *ctl ATTRIBUTE_UNUSED, virCheckFlags(0, NULL); - if (VIR_ALLOC_N(ret, VIR_STORAGE_POOL_EVENT_ID_LAST) < 0) + if (VIR_ALLOC_N(ret, VIR_STORAGE_POOL_EVENT_ID_LAST + 1) < 0) goto error; for (i = 0; i < VIR_STORAGE_POOL_EVENT_ID_LAST; i++) { @@ -787,7 +787,7 @@ virshNodedevEventNameCompleter(vshControl *ctl ATTRIBUTE_UNUSED, virCheckFlags(0, NULL); - if (VIR_ALLOC_N(ret, VIR_NODE_DEVICE_EVENT_ID_LAST) < 0) + if (VIR_ALLOC_N(ret, VIR_NODE_DEVICE_EVENT_ID_LAST + 1) < 0) goto error; for (i = 0; i < VIR_NODE_DEVICE_EVENT_ID_LAST; i++) { -- 2.17.1

On 07/12/2018 01:46 PM, Simon Kobyda wrote:
Functions virshSecretEventNameCompleter, virshPoolEventNameCompleter, virshNodedevEventNameCompleter allocates only enough space for array of N strings. However these are null terminated strings, so program needs to alloc space for array of N+1 strings. How to replicate error: valgrind virsh, use completer for '-nodedev-event --event' or '-pool-event --event' or '-secret-event --event'. --- tools/virsh-completer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
The commit message could use some cleaning up. Firstly, there's no need to prepend every line with a TAB (btw remember to put 'set expandtab' into your .vimrc). Secondly, the is no 'Signed-off-By' line which prevents the patch from being merged. Thirdly, the lines are too long and should be cut. The patch looks okay though. Michal
participants (2)
-
Michal Privoznik
-
Simon Kobyda