From: Benoît Ganne Date: Fri, 6 Nov 2020 09:51:47 +0000 (+0100) Subject: ipsec: fix unformat types X-Git-Tag: v21.06-rc0~213 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=f6422ffbc82c55f50d06c8c7a2e230db7001ee35;hp=27632cae3dbed6afbaaf12d8da7798d7ecaa2ddb;p=vpp.git ipsec: fix unformat types ipsec_{crypto,integ}_alg_t are packed and smaller than u32. Callers are using those enums so unformat functions should too instead of u32 to not overflow the stack. Type: fix Change-Id: Ifc86366f1928ca6352f06f390a88ac64668289d5 Signed-off-by: Benoît Ganne --- diff --git a/src/vnet/ipsec/ipsec_format.c b/src/vnet/ipsec/ipsec_format.c index bf5ea3750e2..552d446aa34 100644 --- a/src/vnet/ipsec/ipsec_format.c +++ b/src/vnet/ipsec/ipsec_format.c @@ -96,7 +96,7 @@ format_ipsec_crypto_alg (u8 * s, va_list * args) uword unformat_ipsec_crypto_alg (unformat_input_t * input, va_list * args) { - u32 *r = va_arg (*args, u32 *); + ipsec_crypto_alg_t *r = va_arg (*args, ipsec_crypto_alg_t *); if (0); #define _(v,f,s) else if (unformat (input, s)) *r = IPSEC_CRYPTO_ALG_##f; @@ -128,7 +128,7 @@ format_ipsec_integ_alg (u8 * s, va_list * args) uword unformat_ipsec_integ_alg (unformat_input_t * input, va_list * args) { - u32 *r = va_arg (*args, u32 *); + ipsec_integ_alg_t *r = va_arg (*args, ipsec_integ_alg_t *); if (0); #define _(v,f,s) else if (unformat (input, s)) *r = IPSEC_INTEG_ALG_##f;