From cd0ae8bc3fd6cd643ef67f068a00d7f91927b0ea Mon Sep 17 00:00:00 2001
From: Andre Noll <maan@tuebingen.mpg.de>
Date: Sun, 13 Jan 2019 21:01:14 +0100
Subject: [PATCH] lls_parse_arg(): Don't free static memory.

If opt->values is not NULL, no string value is stored on the heap,
and the current code results is a segmentation fault.
---
 lopsub.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lopsub.c b/lopsub.c
index 55ea6ac..44abc93 100644
--- a/lopsub.c
+++ b/lopsub.c
@@ -651,7 +651,7 @@ static int lls_parse_arg(struct lls_arg *la, const struct lls_option *opts,
 	}
 	switch (opt->arg_type) {
 	case LLS_STRING:
-		if (lor->given > 0 && !multiple)
+		if (!opt->values && lor->given > 0 && !multiple)
 			free(lor->value[idx].string_val);
 		if (opt->values) {
 			ret = check_enum_arg(la->arg, opt, errctx);
-- 
2.39.5