Hi,

This patch was applied, and thanks for your help.
Sorry for late, since we couldn't have time to review.

On Sat, Aug 17, 2019 at 07:11:28AM +0300, Stefan Strogin wrote:
> v1->v2:
> Use correct static_ASN1_ITEM_start macros instead of ASN1_ITEM_start in
> static_ASN1_SEQUENCE_END_ref definition.
> ---
>  src/lib/libcrypto/asn1/asn1t.h | 62 ++++++++++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
> 
> diff --git a/src/lib/libcrypto/asn1/asn1t.h b/src/lib/libcrypto/asn1/asn1t.h
> index ba380bdf4..e0d5bc1f7 100644
> --- a/src/lib/libcrypto/asn1/asn1t.h
> +++ b/src/lib/libcrypto/asn1/asn1t.h
> @@ -81,6 +81,9 @@ extern "C" {
>  #define ASN1_ITEM_start(itname) \
>       const ASN1_ITEM itname##_it = {
>  
> +#define static_ASN1_ITEM_start(itname) \
> +     static const ASN1_ITEM itname##_it = {
> +
>  #define ASN1_ITEM_end(itname) \
>               };
>  
> @@ -102,6 +105,17 @@ extern "C" {
>               0,\
>               #tname \
>       ASN1_ITEM_end(tname)
> +#define static_ASN1_ITEM_TEMPLATE_END(tname) \
> +     ;\
> +     static_ASN1_ITEM_start(tname) \
> +             ASN1_ITYPE_PRIMITIVE,\
> +             -1,\
> +             &tname##_item_tt,\
> +             0,\
> +             NULL,\
> +             0,\
> +             #tname \
> +     ASN1_ITEM_end(tname)
>  
>  
>  /* This is a ASN1 type which just embeds a template */
> @@ -130,6 +144,7 @@ extern "C" {
>       static const ASN1_TEMPLATE tname##_seq_tt[] 
>  
>  #define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname)
> +#define static_ASN1_SEQUENCE_END(stname) 
> static_ASN1_SEQUENCE_END_name(stname, stname)
>  
>  #define ASN1_SEQUENCE_END_name(stname, tname) \
>       ;\
> @@ -142,6 +157,17 @@ extern "C" {
>               sizeof(stname),\
>               #stname \
>       ASN1_ITEM_end(tname)
> +#define static_ASN1_SEQUENCE_END_name(stname, tname) \
> +     ;\
> +     static_ASN1_ITEM_start(tname) \
> +             ASN1_ITYPE_SEQUENCE,\
> +             V_ASN1_SEQUENCE,\
> +             tname##_seq_tt,\
> +             sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
> +             NULL,\
> +             sizeof(stname),\
> +             #stname \
> +     ASN1_ITEM_end(tname)
>  
>  #define ASN1_NDEF_SEQUENCE(tname) \
>       ASN1_SEQUENCE(tname)
> @@ -176,12 +202,24 @@ extern "C" {
>               sizeof(tname),\
>               #tname \
>       ASN1_ITEM_end(tname)
> +#define static_ASN1_NDEF_SEQUENCE_END(tname) \
> +     ;\
> +     static_ASN1_ITEM_start(tname) \
> +             ASN1_ITYPE_NDEF_SEQUENCE,\
> +             V_ASN1_SEQUENCE,\
> +             tname##_seq_tt,\
> +             sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
> +             NULL,\
> +             sizeof(tname),\
> +             #tname \
> +     ASN1_ITEM_end(tname)
>  
>  #define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, 
> stname)
>  
>  #define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, 
> tname)
>  
>  #define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, 
> tname)
> +#define static_ASN1_SEQUENCE_END_cb(stname, tname) 
> static_ASN1_SEQUENCE_END_ref(stname, tname)
>  
>  #define ASN1_SEQUENCE_END_ref(stname, tname) \
>       ;\
> @@ -194,6 +232,17 @@ extern "C" {
>               sizeof(stname),\
>               #stname \
>       ASN1_ITEM_end(tname)
> +#define static_ASN1_SEQUENCE_END_ref(stname, tname) \
> +     ;\
> +     static_ASN1_ITEM_start(tname) \
> +             ASN1_ITYPE_SEQUENCE,\
> +             V_ASN1_SEQUENCE,\
> +             tname##_seq_tt,\
> +             sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
> +             &tname##_aux,\
> +             sizeof(stname),\
> +             #stname \
> +     ASN1_ITEM_end(tname)
>  
>  #define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \
>       ;\
> @@ -238,8 +287,10 @@ extern "C" {
>       ASN1_CHOICE(tname)
>  
>  #define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname)
> +#define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, 
> stname)
>  
>  #define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, 
> tname, type)
> +#define static_ASN1_CHOICE_END_name(stname, tname) 
> static_ASN1_CHOICE_END_selector(stname, tname, type)
>  
>  #define ASN1_CHOICE_END_selector(stname, tname, selname) \
>       ;\
> @@ -252,6 +303,17 @@ extern "C" {
>               sizeof(stname),\
>               #stname \
>       ASN1_ITEM_end(tname)
> +#define static_ASN1_CHOICE_END_selector(stname, tname, selname) \
> +     ;\
> +     static_ASN1_ITEM_start(tname) \
> +             ASN1_ITYPE_CHOICE,\
> +             offsetof(stname,selname) ,\
> +             tname##_ch_tt,\
> +             sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\
> +             NULL,\
> +             sizeof(stname),\
> +             #stname \
> +     ASN1_ITEM_end(tname)
>  
>  #define ASN1_CHOICE_END_cb(stname, tname, selname) \
>       ;\
> -- 
> 2.22.1
> 

Reply via email to