samples/landlock: Fix incorrect free in populate_ruleset_net
[linux-2.6-block.git] / samples / landlock / sandboxer.c
index 32e930c853bba4d160aa0760ff0c9279e5470477..8b8ecd65c28c4205cf4a006685f4a5e5b302d31b 100644 (file)
@@ -153,7 +153,7 @@ static int populate_ruleset_net(const char *const env_var, const int ruleset_fd,
                                const __u64 allowed_access)
 {
        int ret = 1;
-       char *env_port_name, *strport;
+       char *env_port_name, *env_port_name_next, *strport;
        struct landlock_net_port_attr net_port = {
                .allowed_access = allowed_access,
                .port = 0,
@@ -165,7 +165,8 @@ static int populate_ruleset_net(const char *const env_var, const int ruleset_fd,
        env_port_name = strdup(env_port_name);
        unsetenv(env_var);
 
-       while ((strport = strsep(&env_port_name, ENV_DELIMITER))) {
+       env_port_name_next = env_port_name;
+       while ((strport = strsep(&env_port_name_next, ENV_DELIMITER))) {
                net_port.port = atoi(strport);
                if (landlock_add_rule(ruleset_fd, LANDLOCK_RULE_NET_PORT,
                                      &net_port, 0)) {