]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
rtla: Fix NULL pointer dereference in actions_parse
authorWander Lairson Costa <wander@redhat.com>
Tue, 6 Jan 2026 11:49:48 +0000 (08:49 -0300)
committerTomas Glozar <tglozar@redhat.com>
Wed, 7 Jan 2026 14:57:55 +0000 (15:57 +0100)
The actions_parse() function uses strtok() to tokenize the trigger
string, but does not check if the returned token is NULL before
passing it to strcmp(). If the trigger parameter is an empty string
or contains only delimiter characters, strtok() returns NULL, causing
strcmp() to dereference a NULL pointer and crash the program.

This issue can be triggered by malformed user input or edge cases in
trigger string parsing. Add a NULL check immediately after the strtok()
call to validate that a token was successfully extracted before using
it. If no token is found, the function now returns -1 to indicate a
parsing error.

Signed-off-by: Wander Lairson Costa <wander@redhat.com>
Link: https://lore.kernel.org/r/20260106133655.249887-13-wander@redhat.com
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
tools/tracing/rtla/src/actions.c

index d9c1db5d97d45f4ac23da07704f35d638ef0f4e5..a42615011962de35ed68951b7f669d1f31198a7d 100644 (file)
@@ -141,6 +141,8 @@ actions_parse(struct actions *self, const char *trigger, const char *tracefn)
 
        strcpy(trigger_c, trigger);
        token = strtok(trigger_c, ",");
+       if (!token)
+               return -1;
 
        if (strcmp(token, "trace") == 0)
                type = ACTION_TRACE_OUTPUT;