Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Jan 2018 07:09:19 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r327573 - head/usr.sbin/efibootmgr
Message-ID:  <201801050709.w0579JCn031156@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: imp
Date: Fri Jan  5 07:09:19 2018
New Revision: 327573
URL: https://svnweb.freebsd.org/changeset/base/327573

Log:
  Free options before setting them. This will prevent us from leaking
  memory when we have multiple copies of the same option from being
  specified.
  
  Sponsored by: Netflix

Modified:
  head/usr.sbin/efibootmgr/efibootmgr.c

Modified: head/usr.sbin/efibootmgr/efibootmgr.c
==============================================================================
--- head/usr.sbin/efibootmgr/efibootmgr.c	Fri Jan  5 07:09:09 2018	(r327572)
+++ head/usr.sbin/efibootmgr/efibootmgr.c	Fri Jan  5 07:09:19 2018	(r327573)
@@ -217,6 +217,7 @@ parse_args(int argc, char *argv[])
 			opts.dry_run = true;
 			break;
 		case 'e':
+			free(opts.env);
 			opts.env = strdup(optarg);
 			break;
 		case 'h':
@@ -224,12 +225,15 @@ parse_args(int argc, char *argv[])
 			errx(1, "%s", USAGE);
 			break;
 		case 'k':
+			free(opts.kernel);
 			opts.kernel = strdup(optarg);
 			break;
 		case 'L':
+			free(opts.label);
 			opts.label = strdup(optarg);
 			break;
 		case 'l':
+			free(opts.loader);
 			opts.loader = strdup(optarg);
 			opts.loader = mangle_loader(opts.loader);
 			break;
@@ -244,6 +248,7 @@ parse_args(int argc, char *argv[])
 			opts.once = true;
 			break;
 		case 'o':
+			free(opts.order);
 			opts.order = strdup(optarg);
 			break;
 		case 'T':



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801050709.w0579JCn031156>