diff options
| author | martin coulon <martinusbe@gmail.com> | 2018-07-11 23:20:51 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-11 23:20:51 +0200 |
| commit | 14c6f2d81a3d3f0ab7e3a8a73714d16a64bd420d (patch) | |
| tree | 9216b5b9335d52a6134c26b5bf54ef2e5c7fdf13 /net | |
| parent | 32769b627546b549eaaa5e60dfa761a38f87da88 (diff) | |
| parent | 29b340530c2f792a824afdbcd3b1cc0a47e9b631 (diff) | |
Merge 3.18.115 into 8.1
Diffstat (limited to 'net')
| -rw-r--r-- | net/bridge/netfilter/ebtables.c | 3 | ||||
| -rw-r--r-- | net/netfilter/nf_log.c | 9 |
2 files changed, 8 insertions, 4 deletions
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c index 158a02a8da54..6fad6069ae24 100644 --- a/net/bridge/netfilter/ebtables.c +++ b/net/bridge/netfilter/ebtables.c @@ -1910,7 +1910,8 @@ static int compat_mtw_from_user(struct compat_ebt_entry_mwt *mwt, int off, pad = 0; unsigned int size_kern, match_size = mwt->match_size; - strlcpy(name, mwt->u.name, sizeof(name)); + if (strscpy(name, mwt->u.name, sizeof(name)) < 0) + return -EINVAL; if (state->buf_kern_start) dst = state->buf_kern_start + state->buf_kern_offset; diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c index cfe93c2227c5..ee15f31b4999 100644 --- a/net/netfilter/nf_log.c +++ b/net/netfilter/nf_log.c @@ -387,14 +387,17 @@ static int nf_log_proc_dostring(struct ctl_table *table, int write, rcu_assign_pointer(net->nf.nf_loggers[tindex], logger); mutex_unlock(&nf_log_mutex); } else { + struct ctl_table tmp = *table; + + tmp.data = buf; mutex_lock(&nf_log_mutex); logger = nft_log_dereference(net->nf.nf_loggers[tindex]); if (!logger) - table->data = "NONE"; + strlcpy(buf, "NONE", sizeof(buf)); else - table->data = logger->name; - r = proc_dostring(table, write, buffer, lenp, ppos); + strlcpy(buf, logger->name, sizeof(buf)); mutex_unlock(&nf_log_mutex); + r = proc_dostring(&tmp, write, buffer, lenp, ppos); } return r; |
