Merge branch 'tmp-tests' into 'master'
Update testing routines
See merge request gnutls/libtasn1!64
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 787c304..3c5353e 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -162,7 +162,7 @@
MANS="$$MANS\ngdoc_MANS += man/$$i.3"; \
TEXINFOS="$$TEXINFOS\ngdoc_TEXINFOS += texi/$$i.texi"; \
done; \
- grep -v -e '^gdoc_MANS += ' -e '^gdoc_TEXINFOS += ' Makefile.am | \
+ grep -v -e '^gdoc_MANS += ' -e '^gdoc_TEXINFOS += ' $(srcdir)/Makefile.am | \
perl -p -e "s,^gdoc_MANS =,gdoc_MANS =$$MANS,;" | \
perl -p -e "s,^gdoc_TEXINFOS =,gdoc_TEXINFOS =$$TEXINFOS,;" \
> tmp-$@;
diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
index ef6bf98..3b65776 100644
--- a/doc/reference/Makefile.am
+++ b/doc/reference/Makefile.am
@@ -42,14 +42,14 @@
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
# e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk
-DOC_SOURCE_DIR=$(top_srcdir)/lib
+DOC_SOURCE_DIR=$(top_srcdir)/lib $(top_builddir)/lib
# Extra options to pass to gtkdoc-scangobj. Normally not needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
-SCAN_OPTIONS=--ignore-decorators=ASN1_API
+SCAN_OPTIONS=--ignore-decorators=ASN1_API --deprecated-guards="ASN1_DISABLE_DEPRECATED"
# Extra options to supply to gtkdoc-mkdb
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
@@ -65,7 +65,7 @@
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
-HFILE_GLOB=$(top_srcdir)/lib/*.h
+HFILE_GLOB=$(top_srcdir)/lib/*.h $(top_builddir)/lib/includes/libtasn1.h
CFILE_GLOB=$(top_srcdir)/lib/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
@@ -74,7 +74,7 @@
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
-IGNORE_HFILES=element.h gstr.h int.h parser_aux.h structure.h gllib
+IGNORE_HFILES=element.h gstr.h int.h parser_aux.h structure.h gl
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
diff --git a/fuzz/libtasn1_parser2tree_fuzzer.repro/clusterfuzz-testcase-minimized-libtasn1_parser2tree_fuzzer-5671277624295424 b/fuzz/libtasn1_parser2tree_fuzzer.repro/clusterfuzz-testcase-minimized-libtasn1_parser2tree_fuzzer-5671277624295424
new file mode 100644
index 0000000..db2fb99
--- /dev/null
+++ b/fuzz/libtasn1_parser2tree_fuzzer.repro/clusterfuzz-testcase-minimized-libtasn1_parser2tree_fuzzer-5671277624295424
@@ -0,0 +1 @@
+ÿ DEFINITIONS IMPLICIT TAGS ::= BEGIN IA5String ::=[UNIVERSAL 9]IMPLICIT OCTET STRING ÿ ::= ÿ END
\ No newline at end of file
diff --git a/lib/ASN1.y b/lib/ASN1.y
index c05a28d..c63b40f 100644
--- a/lib/ASN1.y
+++ b/lib/ASN1.y
@@ -442,8 +442,15 @@
;
type_constant_list : type_constant {$$=$1;}
- | type_constant_list type_constant {$$=$1;
- if ($1 && $2) _asn1_set_right(_asn1_get_last_right($1),$2);}
+ | type_constant_list type_constant {if (!$1)
+ {
+ $$ = $2;
+ }
+ else
+ {
+ $$=$1;
+ if ($2) _asn1_set_right(_asn1_get_last_right($1),$2);
+ }}
;
definitions_id : IDENTIFIER '{' obj_constant_list '}' {$$=_asn1_add_static_node(&e_list, ASN1_ETYPE_OBJECT_ID);
diff --git a/lib/includes/libtasn1.h.in b/lib/includes/libtasn1.h.in
index fa10718..f2bc106 100644
--- a/lib/includes/libtasn1.h.in
+++ b/lib/includes/libtasn1.h.in
@@ -21,12 +21,8 @@
*/
/**
- * libtasn1:Short_Description:
- *
- * GNU ASN.1 library
- */
-/**
- * libtasn1:Long_Description:
+ * SECTION:libtasn1
+ * @short_description: GNU ASN.1 library
*
* The Libtasn1 library provides Abstract Syntax Notation One (ASN.1, as
* specified by the X.680 ITU-T recommendation) parsing and structures
@@ -207,13 +203,12 @@
*
* For the on-disk format of ASN.1 trees, created by asn1_parser2array().
*/
-struct asn1_static_node_st
+typedef struct asn1_static_node_st
{
const char *name; /* Node name */
unsigned int type; /* Node type */
const void *value; /* Node value */
-};
-typedef struct asn1_static_node_st asn1_static_node;
+} asn1_static_node;
/* List of constants for field type of node_asn */
#define ASN1_ETYPE_INVALID 0
@@ -507,11 +502,13 @@
*
* Deprecated: 3.0: Use #asn1_node instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define node_asn_struct _Pragma ("GCC warning \"'node_asn_struct' macro is deprecated, use 'asn1_node' instead.\"") asn1_node_st
#else
#define node_asn_struct asn1_node_st
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* node_asn:
@@ -520,11 +517,13 @@
*
* Deprecated: 3.0: Use #asn1_node instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define node_asn _Pragma ("GCC warning \"'node_asn' macro is deprecated, use 'asn1_node' instead.\"") asn1_node_st
#else
#define node_asn asn1_node_st
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* ASN1_TYPE:
@@ -533,11 +532,13 @@
*
* Deprecated: 3.0: Use #asn1_node instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define ASN1_TYPE _Pragma ("GCC warning \"'ASN1_TYPE' macro is deprecated, use 'asn1_node' instead.\"") asn1_node
#else
#define ASN1_TYPE asn1_node
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* ASN1_TYPE_EMPTY:
@@ -546,11 +547,13 @@
*
* Deprecated: 3.0: Use NULL instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define ASN1_TYPE_EMPTY _Pragma ("GCC warning \"'ASN1_TYPE_EMPTY' macro is deprecated, use 'NULL' instead.\"") NULL
#else
#define ASN1_TYPE_EMPTY NULL
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* static_struct_asn:
@@ -559,11 +562,13 @@
*
* Deprecated: 3.0: Use #asn1_static_node instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define static_struct_asn _Pragma ("GCC warning \"'static_struct_asn' macro is deprecated, use 'asn1_static_node_st' instead.\"") asn1_static_node_st
#else
#define static_struct_asn asn1_static_node_st
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* ASN1_ARRAY_TYPE:
@@ -572,11 +577,13 @@
*
* Deprecated: 3.0: Use #asn1_static_node instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define ASN1_ARRAY_TYPE _Pragma ("GCC warning \"'ASN1_ARRAY_TYPE' macro is deprecated, use 'asn1_static_node' instead.\"") asn1_static_node
#else
#define ASN1_ARRAY_TYPE asn1_static_node
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* asn1_static_node_t:
@@ -585,11 +592,13 @@
*
* Deprecated: 3.0: Use #asn1_static_node instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define asn1_static_node_t _Pragma ("GCC warning \"'asn1_static_node_t' macro is deprecated, use 'asn1_static_node' instead.\"") asn1_static_node
#else
#define asn1_static_node_t asn1_static_node
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* node_data_struct:
@@ -598,11 +607,13 @@
*
* Deprecated: 3.0: Use #asn1_data_node_st instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define node_data_struct _Pragma ("GCC warning \"'node_data_struct' macro is deprecated, use 'asn1_data_node_st' instead.\"") asn1_data_node_st
#else
#define node_data_struct asn1_data_node_st
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
/**
* ASN1_DATA_NODE:
@@ -611,11 +622,13 @@
*
* Deprecated: 3.0: Use #asn1_data_node_st instead.
*/
+#ifndef ASN1_DISABLE_DEPRECATED
#if _ASN1_GCC_VERSION >= 30100
#define ASN1_DATA_NODE _Pragma ("GCC warning \"'asn1_static_node_t' macro is deprecated, use 'asn1_static_node' instead.\"") asn1_data_node_st
#else
#define ASN1_DATA_NODE asn1_data_node_st
#endif
+#endif /* !ASN1_DISABLE_DEPRECATED */
#ifdef __cplusplus
}