Message ID | 1417700189-11337-1-git-send-email-pablo@netfilter.org |
---|---|
State | Accepted |
Delegated to: | Pablo Neira |
Headers | show |
Tested-by: Christophe Leroy <christophe.leroy@c-s.fr> Le 04/12/2014 14:36, Pablo Neira Ayuso a écrit : > Use constant_data_ptr() to point to the right memory position on > big endian when exporting data that is stored in a larger variable. > > Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> > --- > v2: this also fixes the printing of 1 byte fields that are converted to > symbolic constant. > > src/datatype.c | 4 ++-- > src/payload.c | 4 ++-- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/datatype.c b/src/datatype.c > index fd3573e..729e63b 100644 > --- a/src/datatype.c > +++ b/src/datatype.c > @@ -158,8 +158,8 @@ void symbolic_constant_print(const struct symbol_table *tbl, > > /* Export the data in the correct byteorder for comparison */ > assert(expr->len / BITS_PER_BYTE <= sizeof(val)); > - mpz_export_data(&val, expr->value, expr->byteorder, > - expr->len / BITS_PER_BYTE); > + mpz_export_data(constant_data_ptr(val, expr->len), expr->value, > + expr->byteorder, expr->len / BITS_PER_BYTE); > > for (s = tbl->symbols; s->identifier != NULL; s++) { > if (val == s->value) > diff --git a/src/payload.c b/src/payload.c > index ebf8079..83742fb 100644 > --- a/src/payload.c > +++ b/src/payload.c > @@ -79,8 +79,8 @@ static void payload_expr_pctx_update(struct proto_ctx *ctx, > > /* Export the data in the correct byte order */ > assert(right->len / BITS_PER_BYTE <= sizeof(proto)); > - mpz_export_data(&proto, right->value, right->byteorder, > - right->len / BITS_PER_BYTE); > + mpz_export_data(constant_data_ptr(proto, right->len), right->value, > + right->byteorder, right->len / BITS_PER_BYTE); > > base = ctx->protocol[left->payload.base].desc; > desc = proto_find_upper(base, proto); -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, Dec 05, 2014 at 07:39:23AM +0100, leroy christophe wrote:
> Tested-by: Christophe Leroy <christophe.leroy@c-s.fr>
Applied, thanks for reporting and testing.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/src/datatype.c b/src/datatype.c index fd3573e..729e63b 100644 --- a/src/datatype.c +++ b/src/datatype.c @@ -158,8 +158,8 @@ void symbolic_constant_print(const struct symbol_table *tbl, /* Export the data in the correct byteorder for comparison */ assert(expr->len / BITS_PER_BYTE <= sizeof(val)); - mpz_export_data(&val, expr->value, expr->byteorder, - expr->len / BITS_PER_BYTE); + mpz_export_data(constant_data_ptr(val, expr->len), expr->value, + expr->byteorder, expr->len / BITS_PER_BYTE); for (s = tbl->symbols; s->identifier != NULL; s++) { if (val == s->value) diff --git a/src/payload.c b/src/payload.c index ebf8079..83742fb 100644 --- a/src/payload.c +++ b/src/payload.c @@ -79,8 +79,8 @@ static void payload_expr_pctx_update(struct proto_ctx *ctx, /* Export the data in the correct byte order */ assert(right->len / BITS_PER_BYTE <= sizeof(proto)); - mpz_export_data(&proto, right->value, right->byteorder, - right->len / BITS_PER_BYTE); + mpz_export_data(constant_data_ptr(proto, right->len), right->value, + right->byteorder, right->len / BITS_PER_BYTE); base = ctx->protocol[left->payload.base].desc; desc = proto_find_upper(base, proto);
Use constant_data_ptr() to point to the right memory position on big endian when exporting data that is stored in a larger variable. Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> --- v2: this also fixes the printing of 1 byte fields that are converted to symbolic constant. src/datatype.c | 4 ++-- src/payload.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)