--- a/net/bridge/netfilter/ebtables.c +++ b/net/bridge/netfilter/ebtables.c @@ -1953,8 +1953,10 @@ static int compat_mtw_from_user(struct compat_ebt_entry_mwt *mwt, void *dst = NULL; int off, pad = 0; unsigned int size_kern, match_size = mwt->match_size; + int len = strnlen(mwt->u.name, EBT_EXTENSION_MAXNAMELEN - 1); - strlcpy(name, mwt->u.name, sizeof(name)); + memcpy(name, mwt->u.name, len); + name[len] = 0; if (state->buf_kern_start) dst = state->buf_kern_start + state->buf_kern_offset;