[PATCH i-g-t 5/8] lib/igt_drm_fdinfo: Simplify find_kv()

Kamil Konieczny kamil.konieczny at linux.intel.com
Wed Apr 3 17:48:09 UTC 2024


Hi Lucas,
On 2024-04-02 at 15:17:13 -0700, Lucas De Marchi wrote:
> index() is deprecate from libc and strchr() should rather be used.
> Moreover the return value is NULL or a pointer to the occurrence, never
> the initial string and `(p - buf) != keylen` can only be true if ':' is
> the next char after the key.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>  lib/igt_drm_fdinfo.c | 16 ++++++----------
>  1 file changed, 6 insertions(+), 10 deletions(-)
> 
> diff --git a/lib/igt_drm_fdinfo.c b/lib/igt_drm_fdinfo.c
> index 17cac4009..15f71e172 100644
> --- a/lib/igt_drm_fdinfo.c
> +++ b/lib/igt_drm_fdinfo.c
> @@ -106,20 +106,17 @@ static int parse_engine(char *line, struct drm_client_fdinfo *info,
>  
>  static const char *find_kv(const char *buf, const char *key, size_t keylen)
>  {
> -	const char *p = buf;
> +	const char *p;
>  
>  	if (strncmp(buf, key, keylen))
>  		return NULL;
>  
> -	p = index(buf, ':');
> -	if (!p || p == buf)
> -		return NULL;
> -	if ((p - buf) != keylen)
> +	p = buf + keylen;
> +	if (*p != ':')
>  		return NULL;
>  
> -	p++;
> -	while (*p && isspace(*p))
> -		p++;
> +	for (p++; *p && isspace(*p); p++)
> +		;
>  
>  	return *p ? p : NULL;
>  }
> @@ -233,8 +230,7 @@ __igt_parse_drm_fdinfo(int dir, const char *fd, struct drm_client_fdinfo *info,
>  		if ((v = find_kv(l, "drm-driver", strlen("drm-driver")))) {
>  			strncpy(info->driver, v, sizeof(info->driver) - 1);
>  			good++;
> -		}  else if ((v = find_kv(l, "drm-client-id",
> -					 strlen("drm-client-id")))) {
> +		}  else if ((v = find_kv(l, "drm-client-id", strlen("drm-client-id")))) {

This chunk  shouldn't be here, with it removed:

Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>

>  			info->id = atol(v);
>  			good++;
>  		} else if ((v = find_kv(l, "drm-pdev", strlen("drm-pdev")))) {
> -- 
> 2.43.0
> 


More information about the igt-dev mailing list