switch(type) {
case NFTNL_EXPR_BITWISE_SREG:
- memcpy(&bitwise->sreg, data, sizeof(bitwise->sreg));
+ memcpy(&bitwise->sreg, data, data_len);
break;
case NFTNL_EXPR_BITWISE_DREG:
- memcpy(&bitwise->dreg, data, sizeof(bitwise->dreg));
+ memcpy(&bitwise->dreg, data, data_len);
break;
case NFTNL_EXPR_BITWISE_OP:
- memcpy(&bitwise->op, data, sizeof(bitwise->op));
+ memcpy(&bitwise->op, data, data_len);
break;
case NFTNL_EXPR_BITWISE_LEN:
- memcpy(&bitwise->len, data, sizeof(bitwise->len));
+ memcpy(&bitwise->len, data, data_len);
break;
case NFTNL_EXPR_BITWISE_MASK:
return nftnl_data_cpy(&bitwise->mask, data, data_len);
switch(type) {
case NFTNL_EXPR_BYTEORDER_SREG:
- memcpy(&byteorder->sreg, data, sizeof(byteorder->sreg));
+ memcpy(&byteorder->sreg, data, data_len);
break;
case NFTNL_EXPR_BYTEORDER_DREG:
- memcpy(&byteorder->dreg, data, sizeof(byteorder->dreg));
+ memcpy(&byteorder->dreg, data, data_len);
break;
case NFTNL_EXPR_BYTEORDER_OP:
- memcpy(&byteorder->op, data, sizeof(byteorder->op));
+ memcpy(&byteorder->op, data, data_len);
break;
case NFTNL_EXPR_BYTEORDER_LEN:
- memcpy(&byteorder->len, data, sizeof(byteorder->len));
+ memcpy(&byteorder->len, data, data_len);
break;
case NFTNL_EXPR_BYTEORDER_SIZE:
- memcpy(&byteorder->size, data, sizeof(byteorder->size));
+ memcpy(&byteorder->size, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_CMP_SREG:
- memcpy(&cmp->sreg, data, sizeof(cmp->sreg));
+ memcpy(&cmp->sreg, data, data_len);
break;
case NFTNL_EXPR_CMP_OP:
- memcpy(&cmp->op, data, sizeof(cmp->op));
+ memcpy(&cmp->op, data, data_len);
break;
case NFTNL_EXPR_CMP_DATA:
return nftnl_data_cpy(&cmp->data, data, data_len);
switch(type) {
case NFTNL_EXPR_CONNLIMIT_COUNT:
- memcpy(&connlimit->count, data, sizeof(connlimit->count));
+ memcpy(&connlimit->count, data, data_len);
break;
case NFTNL_EXPR_CONNLIMIT_FLAGS:
- memcpy(&connlimit->flags, data, sizeof(connlimit->flags));
+ memcpy(&connlimit->flags, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_CTR_BYTES:
- memcpy(&ctr->bytes, data, sizeof(ctr->bytes));
+ memcpy(&ctr->bytes, data, data_len);
break;
case NFTNL_EXPR_CTR_PACKETS:
- memcpy(&ctr->pkts, data, sizeof(ctr->pkts));
+ memcpy(&ctr->pkts, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_CT_KEY:
- memcpy(&ct->key, data, sizeof(ct->key));
+ memcpy(&ct->key, data, data_len);
break;
case NFTNL_EXPR_CT_DIR:
- memcpy(&ct->dir, data, sizeof(ct->dir));
+ memcpy(&ct->dir, data, data_len);
break;
case NFTNL_EXPR_CT_DREG:
- memcpy(&ct->dreg, data, sizeof(ct->dreg));
+ memcpy(&ct->dreg, data, data_len);
break;
case NFTNL_EXPR_CT_SREG:
- memcpy(&ct->sreg, data, sizeof(ct->sreg));
+ memcpy(&ct->sreg, data, data_len);
break;
}
return 0;
switch (type) {
case NFTNL_EXPR_DUP_SREG_ADDR:
- memcpy(&dup->sreg_addr, data, sizeof(dup->sreg_addr));
+ memcpy(&dup->sreg_addr, data, data_len);
break;
case NFTNL_EXPR_DUP_SREG_DEV:
- memcpy(&dup->sreg_dev, data, sizeof(dup->sreg_dev));
+ memcpy(&dup->sreg_dev, data, data_len);
break;
}
return 0;
switch (type) {
case NFTNL_EXPR_DYNSET_SREG_KEY:
- memcpy(&dynset->sreg_key, data, sizeof(dynset->sreg_key));
+ memcpy(&dynset->sreg_key, data, data_len);
break;
case NFTNL_EXPR_DYNSET_SREG_DATA:
- memcpy(&dynset->sreg_data, data, sizeof(dynset->sreg_data));
+ memcpy(&dynset->sreg_data, data, data_len);
break;
case NFTNL_EXPR_DYNSET_OP:
- memcpy(&dynset->op, data, sizeof(dynset->op));
+ memcpy(&dynset->op, data, data_len);
break;
case NFTNL_EXPR_DYNSET_TIMEOUT:
- memcpy(&dynset->timeout, data, sizeof(dynset->timeout));
+ memcpy(&dynset->timeout, data, data_len);
break;
case NFTNL_EXPR_DYNSET_SET_NAME:
dynset->set_name = strdup((const char *)data);
return -1;
break;
case NFTNL_EXPR_DYNSET_SET_ID:
- memcpy(&dynset->set_id, data, sizeof(dynset->set_id));
+ memcpy(&dynset->set_id, data, data_len);
break;
case NFTNL_EXPR_DYNSET_EXPR:
list_for_each_entry_safe(expr, next, &dynset->expr_list, head)
list_add(&expr->head, &dynset->expr_list);
break;
case NFTNL_EXPR_DYNSET_FLAGS:
- memcpy(&dynset->dynset_flags, data, sizeof(dynset->dynset_flags));
+ memcpy(&dynset->dynset_flags, data, data_len);
break;
default:
return -1;
switch(type) {
case NFTNL_EXPR_EXTHDR_DREG:
- memcpy(&exthdr->dreg, data, sizeof(exthdr->dreg));
+ memcpy(&exthdr->dreg, data, data_len);
break;
case NFTNL_EXPR_EXTHDR_TYPE:
- memcpy(&exthdr->type, data, sizeof(exthdr->type));
+ memcpy(&exthdr->type, data, data_len);
break;
case NFTNL_EXPR_EXTHDR_OFFSET:
- memcpy(&exthdr->offset, data, sizeof(exthdr->offset));
+ memcpy(&exthdr->offset, data, data_len);
break;
case NFTNL_EXPR_EXTHDR_LEN:
- memcpy(&exthdr->len, data, sizeof(exthdr->len));
+ memcpy(&exthdr->len, data, data_len);
break;
case NFTNL_EXPR_EXTHDR_OP:
- memcpy(&exthdr->op, data, sizeof(exthdr->op));
+ memcpy(&exthdr->op, data, data_len);
break;
case NFTNL_EXPR_EXTHDR_FLAGS:
- memcpy(&exthdr->flags, data, sizeof(exthdr->flags));
+ memcpy(&exthdr->flags, data, data_len);
break;
case NFTNL_EXPR_EXTHDR_SREG:
- memcpy(&exthdr->sreg, data, sizeof(exthdr->sreg));
+ memcpy(&exthdr->sreg, data, data_len);
break;
}
return 0;
switch (result) {
case NFTNL_EXPR_FIB_RESULT:
- memcpy(&fib->result, data, sizeof(fib->result));
+ memcpy(&fib->result, data, data_len);
break;
case NFTNL_EXPR_FIB_DREG:
- memcpy(&fib->dreg, data, sizeof(fib->dreg));
+ memcpy(&fib->dreg, data, data_len);
break;
case NFTNL_EXPR_FIB_FLAGS:
- memcpy(&fib->flags, data, sizeof(fib->flags));
+ memcpy(&fib->flags, data, data_len);
break;
}
return 0;
switch (type) {
case NFTNL_EXPR_FWD_SREG_DEV:
- memcpy(&fwd->sreg_dev, data, sizeof(fwd->sreg_dev));
+ memcpy(&fwd->sreg_dev, data, data_len);
break;
case NFTNL_EXPR_FWD_SREG_ADDR:
- memcpy(&fwd->sreg_addr, data, sizeof(fwd->sreg_addr));
+ memcpy(&fwd->sreg_addr, data, data_len);
break;
case NFTNL_EXPR_FWD_NFPROTO:
- memcpy(&fwd->nfproto, data, sizeof(fwd->nfproto));
+ memcpy(&fwd->nfproto, data, data_len);
break;
}
return 0;
struct nftnl_expr_hash *hash = nftnl_expr_data(e);
switch (type) {
case NFTNL_EXPR_HASH_SREG:
- memcpy(&hash->sreg, data, sizeof(hash->sreg));
+ memcpy(&hash->sreg, data, data_len);
break;
case NFTNL_EXPR_HASH_DREG:
- memcpy(&hash->dreg, data, sizeof(hash->dreg));
+ memcpy(&hash->dreg, data, data_len);
break;
case NFTNL_EXPR_HASH_LEN:
- memcpy(&hash->len, data, sizeof(hash->len));
+ memcpy(&hash->len, data, data_len);
break;
case NFTNL_EXPR_HASH_MODULUS:
- memcpy(&hash->modulus, data, sizeof(hash->modulus));
+ memcpy(&hash->modulus, data, data_len);
break;
case NFTNL_EXPR_HASH_SEED:
- memcpy(&hash->seed, data, sizeof(hash->seed));
+ memcpy(&hash->seed, data, data_len);
break;
case NFTNL_EXPR_HASH_OFFSET:
- memcpy(&hash->offset, data, sizeof(hash->offset));
+ memcpy(&hash->offset, data, data_len);
break;
case NFTNL_EXPR_HASH_TYPE:
- memcpy(&hash->type, data, sizeof(hash->type));
+ memcpy(&hash->type, data, data_len);
break;
default:
return -1;
switch(type) {
case NFTNL_EXPR_IMM_DREG:
- memcpy(&imm->dreg, data, sizeof(imm->dreg));
+ memcpy(&imm->dreg, data, data_len);
break;
case NFTNL_EXPR_IMM_DATA:
return nftnl_data_cpy(&imm->data, data, data_len);
case NFTNL_EXPR_IMM_VERDICT:
- memcpy(&imm->data.verdict, data, sizeof(imm->data.verdict));
+ memcpy(&imm->data.verdict, data, data_len);
break;
case NFTNL_EXPR_IMM_CHAIN:
if (e->flags & (1 << NFTNL_EXPR_IMM_CHAIN))
return -1;
break;
case NFTNL_EXPR_IMM_CHAIN_ID:
- memcpy(&imm->data.chain_id, data, sizeof(uint32_t));
+ memcpy(&imm->data.chain_id, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_INNER_TYPE:
- memcpy(&inner->type, data, sizeof(inner->type));
+ memcpy(&inner->type, data, data_len);
break;
case NFTNL_EXPR_INNER_FLAGS:
- memcpy(&inner->flags, data, sizeof(inner->flags));
+ memcpy(&inner->flags, data, data_len);
break;
case NFTNL_EXPR_INNER_HDRSIZE:
- memcpy(&inner->hdrsize, data, sizeof(inner->hdrsize));
+ memcpy(&inner->hdrsize, data, data_len);
break;
case NFTNL_EXPR_INNER_EXPR:
if (inner->expr)
switch (type) {
case NFTNL_EXPR_LAST_MSECS:
- memcpy(&last->msecs, data, sizeof(last->msecs));
+ memcpy(&last->msecs, data, data_len);
break;
case NFTNL_EXPR_LAST_SET:
- memcpy(&last->set, data, sizeof(last->set));
+ memcpy(&last->set, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_LIMIT_RATE:
- memcpy(&limit->rate, data, sizeof(limit->rate));
+ memcpy(&limit->rate, data, data_len);
break;
case NFTNL_EXPR_LIMIT_UNIT:
- memcpy(&limit->unit, data, sizeof(limit->unit));
+ memcpy(&limit->unit, data, data_len);
break;
case NFTNL_EXPR_LIMIT_BURST:
- memcpy(&limit->burst, data, sizeof(limit->burst));
+ memcpy(&limit->burst, data, data_len);
break;
case NFTNL_EXPR_LIMIT_TYPE:
- memcpy(&limit->type, data, sizeof(limit->type));
+ memcpy(&limit->type, data, data_len);
break;
case NFTNL_EXPR_LIMIT_FLAGS:
- memcpy(&limit->flags, data, sizeof(limit->flags));
+ memcpy(&limit->flags, data, data_len);
break;
}
return 0;
return -1;
break;
case NFTNL_EXPR_LOG_GROUP:
- memcpy(&log->group, data, sizeof(log->group));
+ memcpy(&log->group, data, data_len);
break;
case NFTNL_EXPR_LOG_SNAPLEN:
- memcpy(&log->snaplen, data, sizeof(log->snaplen));
+ memcpy(&log->snaplen, data, data_len);
break;
case NFTNL_EXPR_LOG_QTHRESHOLD:
- memcpy(&log->qthreshold, data, sizeof(log->qthreshold));
+ memcpy(&log->qthreshold, data, data_len);
break;
case NFTNL_EXPR_LOG_LEVEL:
- memcpy(&log->level, data, sizeof(log->level));
+ memcpy(&log->level, data, data_len);
break;
case NFTNL_EXPR_LOG_FLAGS:
- memcpy(&log->flags, data, sizeof(log->flags));
+ memcpy(&log->flags, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_LOOKUP_SREG:
- memcpy(&lookup->sreg, data, sizeof(lookup->sreg));
+ memcpy(&lookup->sreg, data, data_len);
break;
case NFTNL_EXPR_LOOKUP_DREG:
- memcpy(&lookup->dreg, data, sizeof(lookup->dreg));
+ memcpy(&lookup->dreg, data, data_len);
break;
case NFTNL_EXPR_LOOKUP_SET:
lookup->set_name = strdup((const char *)data);
return -1;
break;
case NFTNL_EXPR_LOOKUP_SET_ID:
- memcpy(&lookup->set_id, data, sizeof(lookup->set_id));
+ memcpy(&lookup->set_id, data, data_len);
break;
case NFTNL_EXPR_LOOKUP_FLAGS:
- memcpy(&lookup->flags, data, sizeof(lookup->flags));
+ memcpy(&lookup->flags, data, data_len);
break;
}
return 0;
switch (type) {
case NFTNL_EXPR_MASQ_FLAGS:
- memcpy(&masq->flags, data, sizeof(masq->flags));
+ memcpy(&masq->flags, data, data_len);
break;
case NFTNL_EXPR_MASQ_REG_PROTO_MIN:
- memcpy(&masq->sreg_proto_min, data, sizeof(masq->sreg_proto_min));
+ memcpy(&masq->sreg_proto_min, data, data_len);
break;
case NFTNL_EXPR_MASQ_REG_PROTO_MAX:
- memcpy(&masq->sreg_proto_max, data, sizeof(masq->sreg_proto_max));
+ memcpy(&masq->sreg_proto_max, data, data_len);
break;
}
return 0;
(const char *)data);
break;
case NFTNL_EXPR_MT_REV:
- memcpy(&mt->rev, data, sizeof(mt->rev));
+ memcpy(&mt->rev, data, data_len);
break;
case NFTNL_EXPR_MT_INFO:
if (e->flags & (1 << NFTNL_EXPR_MT_INFO))
switch(type) {
case NFTNL_EXPR_META_KEY:
- memcpy(&meta->key, data, sizeof(meta->key));
+ memcpy(&meta->key, data, data_len);
break;
case NFTNL_EXPR_META_DREG:
- memcpy(&meta->dreg, data, sizeof(meta->dreg));
+ memcpy(&meta->dreg, data, data_len);
break;
case NFTNL_EXPR_META_SREG:
- memcpy(&meta->sreg, data, sizeof(meta->sreg));
+ memcpy(&meta->sreg, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_NAT_TYPE:
- memcpy(&nat->type, data, sizeof(nat->type));
+ memcpy(&nat->type, data, data_len);
break;
case NFTNL_EXPR_NAT_FAMILY:
- memcpy(&nat->family, data, sizeof(nat->family));
+ memcpy(&nat->family, data, data_len);
break;
case NFTNL_EXPR_NAT_REG_ADDR_MIN:
- memcpy(&nat->sreg_addr_min, data, sizeof(nat->sreg_addr_min));
+ memcpy(&nat->sreg_addr_min, data, data_len);
break;
case NFTNL_EXPR_NAT_REG_ADDR_MAX:
- memcpy(&nat->sreg_addr_max, data, sizeof(nat->sreg_addr_max));
+ memcpy(&nat->sreg_addr_max, data, data_len);
break;
case NFTNL_EXPR_NAT_REG_PROTO_MIN:
- memcpy(&nat->sreg_proto_min, data, sizeof(nat->sreg_proto_min));
+ memcpy(&nat->sreg_proto_min, data, data_len);
break;
case NFTNL_EXPR_NAT_REG_PROTO_MAX:
- memcpy(&nat->sreg_proto_max, data, sizeof(nat->sreg_proto_max));
+ memcpy(&nat->sreg_proto_max, data, data_len);
break;
case NFTNL_EXPR_NAT_FLAGS:
- memcpy(&nat->flags, data, sizeof(nat->flags));
+ memcpy(&nat->flags, data, data_len);
break;
}
switch (type) {
case NFTNL_EXPR_NG_DREG:
- memcpy(&ng->dreg, data, sizeof(ng->dreg));
+ memcpy(&ng->dreg, data, data_len);
break;
case NFTNL_EXPR_NG_MODULUS:
- memcpy(&ng->modulus, data, sizeof(ng->modulus));
+ memcpy(&ng->modulus, data, data_len);
break;
case NFTNL_EXPR_NG_TYPE:
- memcpy(&ng->type, data, sizeof(ng->type));
+ memcpy(&ng->type, data, data_len);
break;
case NFTNL_EXPR_NG_OFFSET:
- memcpy(&ng->offset, data, sizeof(ng->offset));
+ memcpy(&ng->offset, data, data_len);
break;
default:
return -1;
switch(type) {
case NFTNL_EXPR_OBJREF_IMM_TYPE:
- memcpy(&objref->imm.type, data, sizeof(objref->imm.type));
+ memcpy(&objref->imm.type, data, data_len);
break;
case NFTNL_EXPR_OBJREF_IMM_NAME:
objref->imm.name = strdup(data);
return -1;
break;
case NFTNL_EXPR_OBJREF_SET_SREG:
- memcpy(&objref->set.sreg, data, sizeof(objref->set.sreg));
+ memcpy(&objref->set.sreg, data, data_len);
break;
case NFTNL_EXPR_OBJREF_SET_NAME:
objref->set.name = strdup(data);
return -1;
break;
case NFTNL_EXPR_OBJREF_SET_ID:
- memcpy(&objref->set.id, data, sizeof(objref->set.id));
+ memcpy(&objref->set.id, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_OSF_DREG:
- memcpy(&osf->dreg, data, sizeof(osf->dreg));
+ memcpy(&osf->dreg, data, data_len);
break;
case NFTNL_EXPR_OSF_TTL:
- memcpy(&osf->ttl, data, sizeof(osf->ttl));
+ memcpy(&osf->ttl, data, data_len);
break;
case NFTNL_EXPR_OSF_FLAGS:
- memcpy(&osf->flags, data, sizeof(osf->flags));
+ memcpy(&osf->flags, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_PAYLOAD_SREG:
- memcpy(&payload->sreg, data, sizeof(payload->sreg));
+ memcpy(&payload->sreg, data, data_len);
break;
case NFTNL_EXPR_PAYLOAD_DREG:
- memcpy(&payload->dreg, data, sizeof(payload->dreg));
+ memcpy(&payload->dreg, data, data_len);
break;
case NFTNL_EXPR_PAYLOAD_BASE:
- memcpy(&payload->base, data, sizeof(payload->base));
+ memcpy(&payload->base, data, data_len);
break;
case NFTNL_EXPR_PAYLOAD_OFFSET:
- memcpy(&payload->offset, data, sizeof(payload->offset));
+ memcpy(&payload->offset, data, data_len);
break;
case NFTNL_EXPR_PAYLOAD_LEN:
- memcpy(&payload->len, data, sizeof(payload->len));
+ memcpy(&payload->len, data, data_len);
break;
case NFTNL_EXPR_PAYLOAD_CSUM_TYPE:
- memcpy(&payload->csum_type, data, sizeof(payload->csum_type));
+ memcpy(&payload->csum_type, data, data_len);
break;
case NFTNL_EXPR_PAYLOAD_CSUM_OFFSET:
- memcpy(&payload->csum_offset, data, sizeof(payload->csum_offset));
+ memcpy(&payload->csum_offset, data, data_len);
break;
case NFTNL_EXPR_PAYLOAD_FLAGS:
- memcpy(&payload->csum_flags, data, sizeof(payload->csum_flags));
+ memcpy(&payload->csum_flags, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_QUEUE_NUM:
- memcpy(&queue->queuenum, data, sizeof(queue->queuenum));
+ memcpy(&queue->queuenum, data, data_len);
break;
case NFTNL_EXPR_QUEUE_TOTAL:
- memcpy(&queue->queues_total, data, sizeof(queue->queues_total));
+ memcpy(&queue->queues_total, data, data_len);
break;
case NFTNL_EXPR_QUEUE_FLAGS:
- memcpy(&queue->flags, data, sizeof(queue->flags));
+ memcpy(&queue->flags, data, data_len);
break;
case NFTNL_EXPR_QUEUE_SREG_QNUM:
- memcpy(&queue->sreg_qnum, data, sizeof(queue->sreg_qnum));
+ memcpy(&queue->sreg_qnum, data, data_len);
break;
}
return 0;
switch (type) {
case NFTNL_EXPR_QUOTA_BYTES:
- memcpy("a->bytes, data, sizeof(quota->bytes));
+ memcpy("a->bytes, data, data_len);
break;
case NFTNL_EXPR_QUOTA_CONSUMED:
- memcpy("a->consumed, data, sizeof(quota->consumed));
+ memcpy("a->consumed, data, data_len);
break;
case NFTNL_EXPR_QUOTA_FLAGS:
- memcpy("a->flags, data, sizeof(quota->flags));
+ memcpy("a->flags, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_RANGE_SREG:
- memcpy(&range->sreg, data, sizeof(range->sreg));
+ memcpy(&range->sreg, data, data_len);
break;
case NFTNL_EXPR_RANGE_OP:
- memcpy(&range->op, data, sizeof(range->op));
+ memcpy(&range->op, data, data_len);
break;
case NFTNL_EXPR_RANGE_FROM_DATA:
return nftnl_data_cpy(&range->data_from, data, data_len);
switch (type) {
case NFTNL_EXPR_REDIR_REG_PROTO_MIN:
- memcpy(&redir->sreg_proto_min, data, sizeof(redir->sreg_proto_min));
+ memcpy(&redir->sreg_proto_min, data, data_len);
break;
case NFTNL_EXPR_REDIR_REG_PROTO_MAX:
- memcpy(&redir->sreg_proto_max, data, sizeof(redir->sreg_proto_max));
+ memcpy(&redir->sreg_proto_max, data, data_len);
break;
case NFTNL_EXPR_REDIR_FLAGS:
- memcpy(&redir->flags, data, sizeof(redir->flags));
+ memcpy(&redir->flags, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_REJECT_TYPE:
- memcpy(&reject->type, data, sizeof(reject->type));
+ memcpy(&reject->type, data, data_len);
break;
case NFTNL_EXPR_REJECT_CODE:
- memcpy(&reject->icmp_code, data, sizeof(reject->icmp_code));
+ memcpy(&reject->icmp_code, data, data_len);
break;
}
return 0;
switch (type) {
case NFTNL_EXPR_RT_KEY:
- memcpy(&rt->key, data, sizeof(rt->key));
+ memcpy(&rt->key, data, data_len);
break;
case NFTNL_EXPR_RT_DREG:
- memcpy(&rt->dreg, data, sizeof(rt->dreg));
+ memcpy(&rt->dreg, data, data_len);
break;
}
return 0;
switch (type) {
case NFTNL_EXPR_SOCKET_KEY:
- memcpy(&socket->key, data, sizeof(socket->key));
+ memcpy(&socket->key, data, data_len);
break;
case NFTNL_EXPR_SOCKET_DREG:
- memcpy(&socket->dreg, data, sizeof(socket->dreg));
+ memcpy(&socket->dreg, data, data_len);
break;
case NFTNL_EXPR_SOCKET_LEVEL:
- memcpy(&socket->level, data, sizeof(socket->level));
+ memcpy(&socket->level, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_SYNPROXY_MSS:
- memcpy(&synproxy->mss, data, sizeof(synproxy->mss));
+ memcpy(&synproxy->mss, data, data_len);
break;
case NFTNL_EXPR_SYNPROXY_WSCALE:
- memcpy(&synproxy->wscale, data, sizeof(synproxy->wscale));
+ memcpy(&synproxy->wscale, data, data_len);
break;
case NFTNL_EXPR_SYNPROXY_FLAGS:
- memcpy(&synproxy->flags, data, sizeof(synproxy->flags));
+ memcpy(&synproxy->flags, data, data_len);
break;
}
return 0;
(const char *) data);
break;
case NFTNL_EXPR_TG_REV:
- memcpy(&tg->rev, data, sizeof(tg->rev));
+ memcpy(&tg->rev, data, data_len);
break;
case NFTNL_EXPR_TG_INFO:
if (e->flags & (1 << NFTNL_EXPR_TG_INFO))
switch(type) {
case NFTNL_EXPR_TPROXY_FAMILY:
- memcpy(&tproxy->family, data, sizeof(tproxy->family));
+ memcpy(&tproxy->family, data, data_len);
break;
case NFTNL_EXPR_TPROXY_REG_ADDR:
- memcpy(&tproxy->sreg_addr, data, sizeof(tproxy->sreg_addr));
+ memcpy(&tproxy->sreg_addr, data, data_len);
break;
case NFTNL_EXPR_TPROXY_REG_PORT:
- memcpy(&tproxy->sreg_port, data, sizeof(tproxy->sreg_port));
+ memcpy(&tproxy->sreg_port, data, data_len);
break;
}
switch(type) {
case NFTNL_EXPR_TUNNEL_KEY:
- memcpy(&tunnel->key, data, sizeof(tunnel->key));
+ memcpy(&tunnel->key, data, data_len);
break;
case NFTNL_EXPR_TUNNEL_DREG:
- memcpy(&tunnel->dreg, data, sizeof(tunnel->dreg));
+ memcpy(&tunnel->dreg, data, data_len);
break;
}
return 0;
switch(type) {
case NFTNL_EXPR_XFRM_KEY:
- memcpy(&x->key, data, sizeof(x->key));
+ memcpy(&x->key, data, data_len);
break;
case NFTNL_EXPR_XFRM_DIR:
- memcpy(&x->dir, data, sizeof(x->dir));
+ memcpy(&x->dir, data, data_len);
break;
case NFTNL_EXPR_XFRM_SPNUM:
- memcpy(&x->spnum, data, sizeof(x->spnum));
+ memcpy(&x->spnum, data, data_len);
break;
case NFTNL_EXPR_XFRM_DREG:
- memcpy(&x->dreg, data, sizeof(x->dreg));
+ memcpy(&x->dreg, data, data_len);
break;
default:
return -1;