diff
  cmd_buf = memdup_user(buffer, count + 1);
  if (IS_ERR(cmd_buf))
    return -ENOMEM;
+ char *tokenize_buf = kstrdup(cmd_buf, GFP_KERNEL);
+ if (!tokenize_buf) {
+     kfree(cmd_buf);
+     return -ENOMEM;
+ }
- subtoken = strsep(&cmd_buf, " ");
+ subtoken = strsep(&tokenize_buf, " ");
  // ... rest of the code ...
  kfree(cmd_buf_tmp);
+ kfree(tokenize_buf);
