ACK: [PATCH] lib: fwts_battery: add helper to build battery path name

ivanhu ivan.hu at canonical.com
Tue Jul 28 23:45:30 UTC 2020



On 7/28/20 11:53 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
> 
> The current method of building a battery pathname may cause truncation
> and gcc-10 generates build errors because of this. Add a helper that
> builds the module path that uses the BSD strlcat for safe string
> concatenation with known (and ignored) truncation since we know that
> the module path name can't exceed PATH_MAX size.
> 
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  src/lib/src/fwts_battery.c | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/src/lib/src/fwts_battery.c b/src/lib/src/fwts_battery.c
> index 3005b533..ef93e75d 100644
> --- a/src/lib/src/fwts_battery.c
> +++ b/src/lib/src/fwts_battery.c
> @@ -187,6 +187,19 @@ static int fwts_battery_get_capacity_proc_fs(fwts_framework *fw,
>  	return FWTS_OK;
>  }
>  
> +static inline void fwts_battery_path(
> +	char *path,
> +	const size_t path_len,
> +	const char *power_supply,
> +	const char *name)
> +{
> +	(void)strlcpy(path, power_supply, path_len);
> +	(void)strlcat(path, "/", path_len);
> +	(void)strlcat(path, name, path_len);
> +	(void)strlcat(path, "/", path_len);
> +	(void)strlcat(path, "type", path_len);
> +}
> +
>  static int fwts_battery_get_count_sys_fs(DIR *dir, uint32_t *count)
>  {
>  	struct dirent *entry;
> @@ -197,7 +210,7 @@ static int fwts_battery_get_count_sys_fs(DIR *dir, uint32_t *count)
>  		entry = readdir(dir);
>  		if (entry && strlen(entry->d_name) > 2) {
>  			/* Check that type field matches the expected type */
> -			snprintf(path, sizeof(path), "%s/%s/type", FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
> +			fwts_battery_path(path, sizeof(path), FWTS_SYS_CLASS_POWER_SUPPLY, entry->d_name);
>  			if ((data = fwts_get(path)) != NULL) {
>  				if (strstr(data, "Battery") != NULL)
>  					(*count)++;
> 

Acked-by: Ivan Hu <ivan.hu at canonical.com>



More information about the fwts-devel mailing list