[PATCH i-g-t 5/7] lib/igt_kms.c: refactor parse_path_connector

Imre Deak imre.deak at intel.com
Mon Sep 23 11:54:13 UTC 2024


On Mon, Sep 23, 2024 at 02:55:47AM +0530, Kunal Joshi wrote:
> Use strdup() to make a copy of connector_path
> before passing it to strtok(), so the original
> string remains unmodified
> 
> Signed-off-by: Kunal Joshi <kunal1.joshi at intel.com>
> ---
>  lib/igt_kms.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 96da33a48..3d2a88b76 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6670,10 +6670,10 @@ static int parse_path_connector(char *connector_path)
>  {
>  	int connector_id;
>  	char *encoder;
> +	char *connector_path_copy = strdup(connector_path);
>  
> -	encoder = strtok(connector_path, ":");
> +	encoder = strtok(connector_path_copy, ":");
>  	igt_assert_f(!strcmp(encoder, "mst"), "PATH connector property expected to have 'mst'\n");

The copy is leaked, sould be freed. This doesn't look like a refactor,
rather a fix, the commit subject should reflect that. With these fixed:

Reviewed-by: Imre Deak <imre.deak at intel.com>

> -
>  	connector_id = atoi(strtok(NULL, "-"));
>  
>  	return connector_id;
> @@ -6688,13 +6688,11 @@ static int parse_path_connector(char *connector_path)
>  int igt_get_dp_mst_connector_id(igt_output_t *output)
>  {
>  	int connector_id;
> -	char *connector_path;
>  
>  	if (!igt_check_output_is_dp_mst(output))
>  		return -EINVAL;
>  
> -	connector_path = output->config.connector_path;
> -	connector_id = parse_path_connector(connector_path);
> +	connector_id = parse_path_connector(output->config.connector_path);
>  
>  	return connector_id;
>  }
> -- 
> 2.43.0
> 


More information about the igt-dev mailing list