diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2019-08-02 19:14:55 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2019-08-02 19:14:55 +0100 |
commit | b24bd25253fe093f722ab576d29fdc41d04cb1ee (patch) | |
tree | 0fcf2afd9f852c4d4c291cf8afaa2c244d598105 /net-libs/libnftnl/files | |
parent | 121ed4eec41fbf03e1998d09eede1bf449da63b9 (diff) |
gentoo resync : 02.08.2019
Diffstat (limited to 'net-libs/libnftnl/files')
3 files changed, 0 insertions, 163 deletions
diff --git a/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-1.patch b/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-1.patch deleted file mode 100644 index e91333e21bb0..000000000000 --- a/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-1.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 9737856067b97cbb869e04fc6b6e65c1d859f521 Mon Sep 17 00:00:00 2001 -From: Phil Sutter <phil@nwl.cc> -Date: Fri, 22 Jun 2018 14:18:57 +0200 -Subject: utils: Fix nftnl_get_value() on big endian - -This function basically did: - -| memcpy(out, val, <len of requested type>); - -which works only for little endian integer types. Fix this by assigning -the 64bit input value to a variable of the right size and use that as -input for above memcpy() call. - -Signed-off-by: Phil Sutter <phil@nwl.cc> ---- - src/utils.c | 44 ++++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 42 insertions(+), 2 deletions(-) - -diff --git a/src/utils.c b/src/utils.c -index 3e44960..4d9ee78 100644 ---- a/src/utils.c -+++ b/src/utils.c -@@ -72,6 +72,15 @@ static struct { - - int nftnl_get_value(enum nftnl_type type, void *val, void *out) - { -+ union { -+ uint8_t u8; -+ uint16_t u16; -+ uint32_t u32; -+ int8_t s8; -+ int16_t s16; -+ int32_t s32; -+ } values; -+ void *valuep = NULL; - int64_t sval; - uint64_t uval; - -@@ -85,7 +94,6 @@ int nftnl_get_value(enum nftnl_type type, void *val, void *out) - errno = ERANGE; - return -1; - } -- memcpy(out, &uval, basetype[type].len); - break; - case NFTNL_TYPE_S8: - case NFTNL_TYPE_S16: -@@ -97,10 +105,42 @@ int nftnl_get_value(enum nftnl_type type, void *val, void *out) - errno = ERANGE; - return -1; - } -- memcpy(out, &sval, basetype[type].len); - break; - } - -+ switch (type) { -+ case NFTNL_TYPE_U8: -+ values.u8 = uval; -+ valuep = &values.u8; -+ break; -+ case NFTNL_TYPE_U16: -+ values.u16 = uval; -+ valuep = &values.u16; -+ break; -+ case NFTNL_TYPE_U32: -+ values.u32 = uval; -+ valuep = &values.u32; -+ break; -+ case NFTNL_TYPE_U64: -+ valuep = &uval; -+ break; -+ case NFTNL_TYPE_S8: -+ values.s8 = sval; -+ valuep = &values.s8; -+ break; -+ case NFTNL_TYPE_S16: -+ values.s16 = sval; -+ valuep = &values.s16; -+ break; -+ case NFTNL_TYPE_S32: -+ values.s32 = sval; -+ valuep = &values.s32; -+ break; -+ case NFTNL_TYPE_S64: -+ valuep = &sval; -+ break; -+ } -+ memcpy(out, valuep, basetype[type].len); - return 0; - } - --- -cgit v1.2.1 - diff --git a/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-2.patch b/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-2.patch deleted file mode 100644 index c6fb5a25a893..000000000000 --- a/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-2.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 5d592ce6c4596b25d5779a224d03c096bc25db54 Mon Sep 17 00:00:00 2001 -From: Phil Sutter <phil@nwl.cc> -Date: Fri, 22 Jun 2018 14:18:58 +0200 -Subject: expr/data_reg: Fix JSON parsing on big endian - -Since reg->len is a 32bit variable, one needs to pass NFTNL_TYPE_U32 to -nftnl_jansson_parse_val(). Otherwise, only the most significant byte in -that variable is being written to. - -Since the value could potentially be larger than 255, increase node_name -buffer to avoid a compiler warning. - -Signed-off-by: Phil Sutter <phil@nwl.cc> ---- - src/expr/data_reg.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/expr/data_reg.c b/src/expr/data_reg.c -index 1b28b29..ad7f4cb 100644 ---- a/src/expr/data_reg.c -+++ b/src/expr/data_reg.c -@@ -59,10 +59,10 @@ static int nftnl_data_reg_verdict_json_parse(union nftnl_data_reg *reg, json_t * - static int nftnl_data_reg_value_json_parse(union nftnl_data_reg *reg, json_t *data, - struct nftnl_parse_err *err) - { -- char node_name[8] = {}; /* strlen("data256") + 1 == 8 */ -+ char node_name[32] = {}; - int ret, remain = sizeof(node_name), offset = 0, i; - -- if (nftnl_jansson_parse_val(data, "len", NFTNL_TYPE_U8, ®->len, err) < 0) -+ if (nftnl_jansson_parse_val(data, "len", NFTNL_TYPE_U32, ®->len, err) < 0) - return DATA_NONE; - - for (i = 0; i < div_round_up(reg->len, sizeof(uint32_t)); i++) { --- -cgit v1.2.1 - diff --git a/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-3.patch b/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-3.patch deleted file mode 100644 index d726ccfdc2d9..000000000000 --- a/net-libs/libnftnl/files/libnftnl-1.1.1-big-endian-3.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 043060b18d27f24fe723e39bc2c9e5f50dde60dd Mon Sep 17 00:00:00 2001 -From: Phil Sutter <phil@nwl.cc> -Date: Fri, 22 Jun 2018 14:18:59 +0200 -Subject: expr/exthdr: Fix JSON parsing on big endian - -When setting NFTNL_EXPR_EXTHDR_TYPE, one needs to call -nftnl_expr_set_u8() and not nftnl_expr_set_u32(). Otherwise 'type' -variable is assigned to uint32_t parameter before being passed to -nftnl_expr_exthdr_set() as void pointer which casts it to uint8_t. -On big endian systems, the latter would only consider the most -significant byte instead of the least significant one. - -Signed-off-by: Phil Sutter <phil@nwl.cc> ---- - src/expr/exthdr.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c -index 75cafbc..a351835 100644 ---- a/src/expr/exthdr.c -+++ b/src/expr/exthdr.c -@@ -270,7 +270,7 @@ nftnl_expr_exthdr_json_parse(struct nftnl_expr *e, json_t *root, - type = str2exthdr_type(exthdr_type); - if (type < 0) - return -1; -- nftnl_expr_set_u32(e, NFTNL_EXPR_EXTHDR_TYPE, type); -+ nftnl_expr_set_u8(e, NFTNL_EXPR_EXTHDR_TYPE, type); - } - - if (nftnl_jansson_parse_val(root, "offset", NFTNL_TYPE_U32, &uval32, --- -cgit v1.2.1 - |