summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libexec/pppoed/pppoed.c6
-rw-r--r--usr.sbin/ppp/ether.c4
2 files changed, 6 insertions, 4 deletions
diff --git a/libexec/pppoed/pppoed.c b/libexec/pppoed/pppoed.c
index c82d305..aae546c 100644
--- a/libexec/pppoed/pppoed.c
+++ b/libexec/pppoed/pppoed.c
@@ -232,7 +232,8 @@ ConfigureNode(const char *prog, const char *iface, const char *provider,
data = (struct ngpppoe_init_data *)alloca(sizeof *data + plen);
snprintf(data->hook, sizeof data->hook, "%s", ngc->peerhook);
- strcpy(data->data, provider);
+ memcpy(data->data, provider, plen);
+ data->data_len = plen;
spath = (char *)alloca(strlen(ngc->peerhook) + 3);
strcpy(spath, ".:");
@@ -324,7 +325,8 @@ Spawn(const char *prog, const char *acname, const char *exec,
slen = strlen(acname);
data = (struct ngpppoe_init_data *)alloca(sizeof *data + slen);
snprintf(data->hook, sizeof data->hook, "%s", ngc.ourhook);
- strcpy(data->data, acname);
+ memcpy(data->data, acname, slen);
+ data->data_len = slen;
path = (char *)alloca(strlen(ngc.ourhook) + 3);
strcpy(path, ".:");
diff --git a/usr.sbin/ppp/ether.c b/usr.sbin/ppp/ether.c
index b54ef0a..cf9c999 100644
--- a/usr.sbin/ppp/ether.c
+++ b/usr.sbin/ppp/ether.c
@@ -585,9 +585,9 @@ ether_Create(struct physical *p)
/* And finally, request a connection to the given provider */
data = (struct ngpppoe_init_data *)alloca(sizeof *data + providerlen);
-
snprintf(data->hook, sizeof data->hook, "%s", dev->hook);
- strcpy(data->data, provider);
+ memcpy(data->data, provider, providerlen);
+ data->data_len = providerlen;
snprintf(connectpath, sizeof connectpath, ".:%s", dev->hook);
log_Printf(LogDEBUG, "Sending PPPOE_CONNECT to %s\n", connectpath);
OpenPOWER on IntegriCloud