aboutsummaryrefslogtreecommitdiffstats
path: root/libasn1fix
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-09-13 08:31:01 +0000
committerLev Walkin <vlm@lionet.info>2004-09-13 08:31:01 +0000
commit188ed2c7147f1cc09c76794c5db5b3f27c9704b3 (patch)
treeea7e4e6028c1cb6fbe6d19b4bd08b00113b56639 /libasn1fix
parentd563d397686b3f9d78ee22ba6a2bd83d29807dd4 (diff)
inner structures tagging fix. see 0.9.5 comment in ChangeLog
Diffstat (limited to 'libasn1fix')
-rw-r--r--libasn1fix/asn1fix_tags.c2
-rw-r--r--libasn1fix/asn1fix_tags.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/libasn1fix/asn1fix_tags.c b/libasn1fix/asn1fix_tags.c
index 6d887980..ed08513b 100644
--- a/libasn1fix/asn1fix_tags.c
+++ b/libasn1fix/asn1fix_tags.c
@@ -2,7 +2,7 @@
#define ADD_TAG(skip, newtag) do { \
void *__p; \
- if(skip) { \
+ if(skip && !(flags & AFT_FULL_COLLECT)) { \
if(newtag.tag_mode != TM_IMPLICIT) \
skip--; \
break; \
diff --git a/libasn1fix/asn1fix_tags.h b/libasn1fix/asn1fix_tags.h
index 394c3e84..a4c31ad9 100644
--- a/libasn1fix/asn1fix_tags.h
+++ b/libasn1fix/asn1fix_tags.h
@@ -4,6 +4,7 @@
enum asn1f_aft_flags_e {
AFT_IMAGINARY_ANY = 0x01, /* Treat ANY tag as [IMAGINARY ANY] */
AFT_FETCH_OUTMOST = 0x02, /* Fetch only outmost tag */
+ AFT_FULL_COLLECT = 0x04, /* Collect all tags */
};
/*