When listing monitors within a specific container (rv list <container>),
the tool incorrectly matched monitors if the requested container name
was only a prefix of the actual container (e.g., 'rv list sche' would
incorrectly list monitors from 'sched:').

Fix this by ensuring the container name is an exact match and is
immediately followed by the ':' separator.

Signed-off-by: Gabriele Monaco <[email protected]>
---
 tools/verification/rv/src/in_kernel.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/verification/rv/src/in_kernel.c 
b/tools/verification/rv/src/in_kernel.c
index a200b63f4509..95adae321c11 100644
--- a/tools/verification/rv/src/in_kernel.c
+++ b/tools/verification/rv/src/in_kernel.c
@@ -193,8 +193,12 @@ static int ikm_fill_monitor_definition(char *name, struct 
monitor *ikm, char *co
        nested_name = strstr(name, ":");
        if (nested_name) {
                /* it belongs in container if it starts with "container:" */
-               if (container && strstr(name, container) != name)
-                       return 1;
+               if (container) {
+                       int len = strlen(container);
+
+                       if (strncmp(name, container, len) || name[len] != ':')
+                               return 1;
+               }
                *nested_name = '/';
                ++nested_name;
                ikm->nested = 1;
-- 
2.54.0


Reply via email to