|
@@ -418,16 +418,17 @@ static int nf_log_proc_dostring(struct ctl_table *table, int write,
|
|
|
{
|
|
|
const struct nf_logger *logger;
|
|
|
char buf[NFLOGGER_NAME_LEN];
|
|
|
- size_t size = *lenp;
|
|
|
int r = 0;
|
|
|
int tindex = (unsigned long)table->extra1;
|
|
|
struct net *net = current->nsproxy->net_ns;
|
|
|
|
|
|
if (write) {
|
|
|
- if (size > sizeof(buf))
|
|
|
- size = sizeof(buf);
|
|
|
- if (copy_from_user(buf, buffer, size))
|
|
|
- return -EFAULT;
|
|
|
+ struct ctl_table tmp = *table;
|
|
|
+
|
|
|
+ tmp.data = buf;
|
|
|
+ r = proc_dostring(&tmp, write, buffer, lenp, ppos);
|
|
|
+ if (r)
|
|
|
+ return r;
|
|
|
|
|
|
if (!strcmp(buf, "NONE")) {
|
|
|
nf_log_unbind_pf(net, tindex);
|