Hello,
When I updated cmdline_symset() in parse.y in the following commit
I missed src/sbin/{iked,ipsecctl,pfctl}/parse.y. OK to update them?
https://marc.info/?l=openbsd-cvs&m=153631079505256&w=2
Index: iked/parse.y
===================================================================
RCS file: /cvs/src/sbin/iked/parse.y,v
retrieving revision 1.76
diff -u -p -u -r1.76 parse.y
--- iked/parse.y 1 Nov 2018 00:18:44 -0000 1.76
+++ iked/parse.y 1 Nov 2018 07:03:31 -0000
@@ -1660,17 +1660,13 @@ cmdline_symset(char *s)
{
char *sym, *val;
int ret;
- size_t len;
if ((val = strrchr(s, '=')) == NULL)
return (-1);
- len = strlen(s) - strlen(val) + 1;
- if ((sym = malloc(len)) == NULL)
+ sym = strndup(s, val - s);
+ if (sym == NULL)
err(1, "%s", __func__);
-
- strlcpy(sym, s, len);
-
ret = symset(sym, val + 1, 1);
free(sym);
Index: ipsecctl/parse.y
===================================================================
RCS file: /cvs/src/sbin/ipsecctl/parse.y,v
retrieving revision 1.174
diff -u -p -u -r1.174 parse.y
--- ipsecctl/parse.y 1 Nov 2018 00:18:44 -0000 1.174
+++ ipsecctl/parse.y 1 Nov 2018 07:03:32 -0000
@@ -1426,17 +1426,13 @@ cmdline_symset(char *s)
{
char *sym, *val;
int ret;
- size_t len;
if ((val = strrchr(s, '=')) == NULL)
return (-1);
- len = strlen(s) - strlen(val) + 1;
- if ((sym = malloc(len)) == NULL)
+ sym = strndup(s, val - s);
+ if (sym == NULL)
err(1, "%s", __func__);
-
- strlcpy(sym, s, len);
-
ret = symset(sym, val + 1, 1);
free(sym);
Index: pfctl/parse.y
===================================================================
RCS file: /cvs/src/sbin/pfctl/parse.y,v
retrieving revision 1.685
diff -u -p -u -r1.685 parse.y
--- pfctl/parse.y 1 Nov 2018 00:18:44 -0000 1.685
+++ pfctl/parse.y 1 Nov 2018 07:03:34 -0000
@@ -5564,11 +5564,9 @@ pfctl_cmdline_symset(char *s)
if ((val = strrchr(s, '=')) == NULL)
return (-1);
- if ((sym = malloc(strlen(s) - strlen(val) + 1)) == NULL)
+ sym = strndup(s, val - s);
+ if (sym == NULL);
err(1, "%s", __func__);
-
- strlcpy(sym, s, strlen(s) - strlen(val) + 1);
-
ret = symset(sym, val + 1, 1);
free(sym);