On 14/01/14 14:01, Andrew Gregory wrote:
> Plugs a memory leak when values were passed twice.
> 

I'd much prefer we aborted instead.  Specifying options twice is a sign
of an error on the users behalf.

Allan

> Signed-off-by: Andrew Gregory <[email protected]>
> ---
>  src/pacman/pacman.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
> index 1fb447c..748bc54 100644
> --- a/src/pacman/pacman.c
> +++ b/src/pacman/pacman.c
> @@ -443,9 +443,11 @@ static int parsearg_global(int opt)
>                       config->noprogressbar = 1;
>                       break;
>               case OP_GPGDIR:
> +                     free(config->gpgdir);
>                       config->gpgdir = strdup(optarg);
>                       break;
>               case OP_LOGFILE:
> +                     free(config->logfile);
>                       config->logfile = strndup(optarg, PATH_MAX);
>                       break;
>               case OP_NOCONFIRM:
> @@ -453,10 +455,12 @@ static int parsearg_global(int opt)
>                       break;
>               case OP_DBPATH:
>               case 'b':
> +                     free(config->dbpath);
>                       config->dbpath = strdup(optarg);
>                       break;
>               case OP_ROOT:
>               case 'r':
> +                     free(config->rootdir);
>                       config->rootdir = strdup(optarg);
>                       break;
>               case OP_VERBOSE:
> @@ -623,6 +627,7 @@ static int parsearg_trans(int opt)
>                       break;
>               case OP_PRINTFORMAT:
>                       config->print = 1;
> +                     free(config->print_format);
>                       config->print_format = strdup(optarg);
>                       break;
>               default:
> 


Reply via email to