[PATCH, RESEND] lib: fwts_args: remove strlen() calls, more efficient and stops valgrind complaining

IvanHu ivan.hu at canonical.com
Tue May 22 05:29:35 UTC 2012


On 05/16/2012 05:25 PM, Colin King wrote:
> From: Colin Ian King<colin.king at canonical.com>
>
> Signed-off-by: Colin Ian King<colin.king at canonical.com>
> ---
>   src/lib/src/fwts_args.c |    5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/lib/src/fwts_args.c b/src/lib/src/fwts_args.c
> index b5ef3e0..b9ae7dc 100644
> --- a/src/lib/src/fwts_args.c
> +++ b/src/lib/src/fwts_args.c
> @@ -101,6 +101,7 @@ int fwts_args_parse(fwts_framework *fw, int argc, char * const argv[])
>   	int option_index;
>   	int ret = FWTS_OK;
>   	char *short_options = NULL;
> +	size_t short_options_len = 0;
>
>   	long_options = calloc(1, (total_options + 1) * sizeof(struct option));
>   	if (long_options == NULL) {
> @@ -126,7 +127,7 @@ int fwts_args_parse(fwts_framework *fw, int argc, char * const argv[])
>   			if (short_name&&  (len = strlen(short_name))>  0) {
>   				if (short_options) {
>   					short_options = realloc(short_options,
> -						strlen(short_options) + len + 1);
> +						short_options_len + len + 1);
>   					if (short_options == NULL) {
>   						fwts_log_error(fw,
>   							"Out of memory "
> @@ -134,6 +135,7 @@ int fwts_args_parse(fwts_framework *fw, int argc, char * const argv[])
>   						return FWTS_ERROR;
>   					}
>   					strcat(short_options, short_name);
> +					short_options_len += (len + 1);
>   				} else {
>   					short_options = calloc(1, len + 1);
>   					if (short_options == NULL) {
> @@ -143,6 +145,7 @@ int fwts_args_parse(fwts_framework *fw, int argc, char * const argv[])
>   						return FWTS_ERROR;
>   					}
>   					strcpy(short_options, short_name);
> +					short_options_len += (len + 1);
>   				}
>   			}
>   		}
Acked-by: Ivan Hu<ivan.hu at canonical.com>




More information about the fwts-devel mailing list