ASN1.y: account for SIZE in BIT STRING This addresses a memory leak. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
diff --git a/lib/ASN1.c b/lib/ASN1.c index a012efe..11ceeea 100644 --- a/lib/ASN1.c +++ b/lib/ASN1.c
@@ -601,12 +601,12 @@ 245, 248, 249, 252, 254, 260, 261, 264, 265, 269, 270, 274, 275, 279, 280, 284, 285, 289, 290, 294, 295, 299, 300, 304, 305, 309, 310, 314, 319, 320, - 324, 325, 326, 331, 337, 340, 342, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 368, 369, - 374, 375, 378, 381, 384, 385, 389, 391, 393, 398, - 400, 402, 407, 411, 412, 417, 419, 422, 426, 431, - 437, 438, 441, 442, 446, 449, 451, 475, 476 + 324, 325, 327, 332, 338, 341, 343, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 369, 370, + 375, 376, 379, 382, 385, 386, 390, 392, 394, 399, + 401, 403, 408, 412, 413, 418, 420, 423, 427, 432, + 438, 439, 442, 443, 447, 450, 452, 476, 477 }; #endif @@ -1985,381 +1985,382 @@ case 71: #line 325 "ASN1.y" /* yacc.c:1648 */ - {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_BIT_STRING|CONST_SIZE);} -#line 1990 "ASN1.c" /* yacc.c:1648 */ + {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_BIT_STRING|CONST_SIZE); + _asn1_set_down((yyval.node),(yyvsp[0].node));} +#line 1991 "ASN1.c" /* yacc.c:1648 */ break; case 72: -#line 327 "ASN1.y" /* yacc.c:1648 */ +#line 328 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_BIT_STRING|CONST_LIST); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 1997 "ASN1.c" /* yacc.c:1648 */ +#line 1998 "ASN1.c" /* yacc.c:1648 */ break; case 73: -#line 332 "ASN1.y" /* yacc.c:1648 */ +#line 333 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_ENUMERATED|CONST_LIST); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 2004 "ASN1.c" /* yacc.c:1648 */ +#line 2005 "ASN1.c" /* yacc.c:1648 */ break; case 74: -#line 337 "ASN1.y" /* yacc.c:1648 */ +#line 338 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_OBJECT_ID);} -#line 2010 "ASN1.c" /* yacc.c:1648 */ +#line 2011 "ASN1.c" /* yacc.c:1648 */ break; case 75: -#line 340 "ASN1.y" /* yacc.c:1648 */ +#line 341 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_IDENTIFIER); _asn1_set_value((yyval.node),(yyvsp[0].str),strlen((yyvsp[0].str))+1);} -#line 2017 "ASN1.c" /* yacc.c:1648 */ +#line 2018 "ASN1.c" /* yacc.c:1648 */ break; case 76: -#line 342 "ASN1.y" /* yacc.c:1648 */ +#line 343 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_IDENTIFIER|CONST_SIZE); _asn1_set_value((yyval.node),(yyvsp[-1].str),strlen((yyvsp[-1].str))+1); _asn1_set_down((yyval.node),(yyvsp[0].node));} -#line 2025 "ASN1.c" /* yacc.c:1648 */ +#line 2026 "ASN1.c" /* yacc.c:1648 */ break; case 77: -#line 345 "ASN1.y" /* yacc.c:1648 */ +#line 346 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2031 "ASN1.c" /* yacc.c:1648 */ +#line 2032 "ASN1.c" /* yacc.c:1648 */ break; case 78: -#line 346 "ASN1.y" /* yacc.c:1648 */ +#line 347 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2037 "ASN1.c" /* yacc.c:1648 */ +#line 2038 "ASN1.c" /* yacc.c:1648 */ break; case 79: -#line 347 "ASN1.y" /* yacc.c:1648 */ +#line 348 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2043 "ASN1.c" /* yacc.c:1648 */ +#line 2044 "ASN1.c" /* yacc.c:1648 */ break; case 81: -#line 349 "ASN1.y" /* yacc.c:1648 */ +#line 350 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2049 "ASN1.c" /* yacc.c:1648 */ +#line 2050 "ASN1.c" /* yacc.c:1648 */ break; case 82: -#line 350 "ASN1.y" /* yacc.c:1648 */ +#line 351 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2055 "ASN1.c" /* yacc.c:1648 */ +#line 2056 "ASN1.c" /* yacc.c:1648 */ break; case 83: -#line 351 "ASN1.y" /* yacc.c:1648 */ +#line 352 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2061 "ASN1.c" /* yacc.c:1648 */ +#line 2062 "ASN1.c" /* yacc.c:1648 */ break; case 84: -#line 352 "ASN1.y" /* yacc.c:1648 */ +#line 353 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2067 "ASN1.c" /* yacc.c:1648 */ +#line 2068 "ASN1.c" /* yacc.c:1648 */ break; case 85: -#line 353 "ASN1.y" /* yacc.c:1648 */ +#line 354 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2073 "ASN1.c" /* yacc.c:1648 */ +#line 2074 "ASN1.c" /* yacc.c:1648 */ break; case 86: -#line 354 "ASN1.y" /* yacc.c:1648 */ +#line 355 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2079 "ASN1.c" /* yacc.c:1648 */ +#line 2080 "ASN1.c" /* yacc.c:1648 */ break; case 87: -#line 355 "ASN1.y" /* yacc.c:1648 */ +#line 356 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2085 "ASN1.c" /* yacc.c:1648 */ +#line 2086 "ASN1.c" /* yacc.c:1648 */ break; case 88: -#line 356 "ASN1.y" /* yacc.c:1648 */ +#line 357 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2091 "ASN1.c" /* yacc.c:1648 */ +#line 2092 "ASN1.c" /* yacc.c:1648 */ break; case 89: -#line 357 "ASN1.y" /* yacc.c:1648 */ +#line 358 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2097 "ASN1.c" /* yacc.c:1648 */ +#line 2098 "ASN1.c" /* yacc.c:1648 */ break; case 90: -#line 358 "ASN1.y" /* yacc.c:1648 */ +#line 359 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2103 "ASN1.c" /* yacc.c:1648 */ +#line 2104 "ASN1.c" /* yacc.c:1648 */ break; case 91: -#line 359 "ASN1.y" /* yacc.c:1648 */ +#line 360 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2109 "ASN1.c" /* yacc.c:1648 */ +#line 2110 "ASN1.c" /* yacc.c:1648 */ break; case 92: -#line 360 "ASN1.y" /* yacc.c:1648 */ +#line 361 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2115 "ASN1.c" /* yacc.c:1648 */ +#line 2116 "ASN1.c" /* yacc.c:1648 */ break; case 93: -#line 361 "ASN1.y" /* yacc.c:1648 */ +#line 362 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2121 "ASN1.c" /* yacc.c:1648 */ +#line 2122 "ASN1.c" /* yacc.c:1648 */ break; case 94: -#line 362 "ASN1.y" /* yacc.c:1648 */ +#line 363 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2127 "ASN1.c" /* yacc.c:1648 */ +#line 2128 "ASN1.c" /* yacc.c:1648 */ break; case 95: -#line 363 "ASN1.y" /* yacc.c:1648 */ +#line 364 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2133 "ASN1.c" /* yacc.c:1648 */ +#line 2134 "ASN1.c" /* yacc.c:1648 */ break; case 96: -#line 364 "ASN1.y" /* yacc.c:1648 */ +#line 365 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2139 "ASN1.c" /* yacc.c:1648 */ +#line 2140 "ASN1.c" /* yacc.c:1648 */ break; case 97: -#line 365 "ASN1.y" /* yacc.c:1648 */ +#line 366 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_NULL);} -#line 2145 "ASN1.c" /* yacc.c:1648 */ +#line 2146 "ASN1.c" /* yacc.c:1648 */ break; case 98: -#line 368 "ASN1.y" /* yacc.c:1648 */ +#line 369 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2151 "ASN1.c" /* yacc.c:1648 */ +#line 2152 "ASN1.c" /* yacc.c:1648 */ break; case 99: -#line 369 "ASN1.y" /* yacc.c:1648 */ +#line 370 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_mod_type((yyvsp[0].node),CONST_TAG); _asn1_set_right((yyvsp[-1].node),_asn1_get_down((yyval.node))); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 2159 "ASN1.c" /* yacc.c:1648 */ +#line 2160 "ASN1.c" /* yacc.c:1648 */ break; case 100: -#line 374 "ASN1.y" /* yacc.c:1648 */ +#line 375 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2165 "ASN1.c" /* yacc.c:1648 */ +#line 2166 "ASN1.c" /* yacc.c:1648 */ break; case 101: -#line 375 "ASN1.y" /* yacc.c:1648 */ +#line 376 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_mod_type((yyvsp[-1].node),CONST_DEFAULT); _asn1_set_right((yyvsp[0].node),_asn1_get_down((yyval.node))); _asn1_set_down((yyval.node),(yyvsp[0].node));} -#line 2173 "ASN1.c" /* yacc.c:1648 */ +#line 2174 "ASN1.c" /* yacc.c:1648 */ break; case 102: -#line 378 "ASN1.y" /* yacc.c:1648 */ +#line 379 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_mod_type((yyvsp[-1].node),CONST_OPTION);} -#line 2179 "ASN1.c" /* yacc.c:1648 */ +#line 2180 "ASN1.c" /* yacc.c:1648 */ break; case 103: -#line 381 "ASN1.y" /* yacc.c:1648 */ +#line 382 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_set_name((yyvsp[0].node),(yyvsp[-1].str));} -#line 2185 "ASN1.c" /* yacc.c:1648 */ +#line 2186 "ASN1.c" /* yacc.c:1648 */ break; case 104: -#line 384 "ASN1.y" /* yacc.c:1648 */ +#line 385 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2191 "ASN1.c" /* yacc.c:1648 */ +#line 2192 "ASN1.c" /* yacc.c:1648 */ break; case 105: -#line 385 "ASN1.y" /* yacc.c:1648 */ +#line 386 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[-2].node); _asn1_set_right(_asn1_get_last_right((yyvsp[-2].node)),(yyvsp[0].node));} -#line 2198 "ASN1.c" /* yacc.c:1648 */ +#line 2199 "ASN1.c" /* yacc.c:1648 */ break; case 106: -#line 389 "ASN1.y" /* yacc.c:1648 */ +#line 390 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_SEQUENCE); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 2205 "ASN1.c" /* yacc.c:1648 */ +#line 2206 "ASN1.c" /* yacc.c:1648 */ break; case 107: -#line 391 "ASN1.y" /* yacc.c:1648 */ +#line 392 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_SEQUENCE_OF); _asn1_set_down((yyval.node),(yyvsp[0].node));} -#line 2212 "ASN1.c" /* yacc.c:1648 */ +#line 2213 "ASN1.c" /* yacc.c:1648 */ break; case 108: -#line 393 "ASN1.y" /* yacc.c:1648 */ +#line 394 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_SEQUENCE_OF|CONST_SIZE); _asn1_set_right((yyvsp[-2].node),(yyvsp[0].node)); _asn1_set_down((yyval.node),(yyvsp[-2].node));} -#line 2220 "ASN1.c" /* yacc.c:1648 */ +#line 2221 "ASN1.c" /* yacc.c:1648 */ break; case 109: -#line 398 "ASN1.y" /* yacc.c:1648 */ +#line 399 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_SET); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 2227 "ASN1.c" /* yacc.c:1648 */ +#line 2228 "ASN1.c" /* yacc.c:1648 */ break; case 110: -#line 400 "ASN1.y" /* yacc.c:1648 */ +#line 401 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_SET_OF); _asn1_set_down((yyval.node),(yyvsp[0].node));} -#line 2234 "ASN1.c" /* yacc.c:1648 */ +#line 2235 "ASN1.c" /* yacc.c:1648 */ break; case 111: -#line 402 "ASN1.y" /* yacc.c:1648 */ +#line 403 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_SET_OF|CONST_SIZE); _asn1_set_right((yyvsp[-2].node),(yyvsp[0].node)); _asn1_set_down((yyval.node),(yyvsp[-2].node));} -#line 2242 "ASN1.c" /* yacc.c:1648 */ +#line 2243 "ASN1.c" /* yacc.c:1648 */ break; case 112: -#line 407 "ASN1.y" /* yacc.c:1648 */ +#line 408 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_CHOICE); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 2249 "ASN1.c" /* yacc.c:1648 */ +#line 2250 "ASN1.c" /* yacc.c:1648 */ break; case 113: -#line 411 "ASN1.y" /* yacc.c:1648 */ +#line 412 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_ANY);} -#line 2255 "ASN1.c" /* yacc.c:1648 */ +#line 2256 "ASN1.c" /* yacc.c:1648 */ break; case 114: -#line 412 "ASN1.y" /* yacc.c:1648 */ +#line 413 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_ANY|CONST_DEFINED_BY); _asn1_set_down((yyval.node),_asn1_add_static_node(&e_list, ASN1_ETYPE_CONSTANT)); _asn1_set_name(_asn1_get_down((yyval.node)),(yyvsp[0].str));} -#line 2263 "ASN1.c" /* yacc.c:1648 */ +#line 2264 "ASN1.c" /* yacc.c:1648 */ break; case 115: -#line 417 "ASN1.y" /* yacc.c:1648 */ +#line 418 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_set_name((yyvsp[0].node),(yyvsp[-2].str));} -#line 2269 "ASN1.c" /* yacc.c:1648 */ +#line 2270 "ASN1.c" /* yacc.c:1648 */ break; case 116: -#line 419 "ASN1.y" /* yacc.c:1648 */ +#line 420 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_set_name((yyvsp[0].node), last_error_token);} -#line 2275 "ASN1.c" /* yacc.c:1648 */ +#line 2276 "ASN1.c" /* yacc.c:1648 */ break; case 117: -#line 423 "ASN1.y" /* yacc.c:1648 */ +#line 424 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_OBJECT_ID|CONST_ASSIGN); _asn1_set_name((yyval.node),(yyvsp[-6].str)); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 2283 "ASN1.c" /* yacc.c:1648 */ +#line 2284 "ASN1.c" /* yacc.c:1648 */ break; case 118: -#line 427 "ASN1.y" /* yacc.c:1648 */ +#line 428 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_OBJECT_ID|CONST_ASSIGN|CONST_1_PARAM); _asn1_set_name((yyval.node),(yyvsp[-5].str)); _asn1_set_value((yyval.node),(yyvsp[-4].str),strlen((yyvsp[-4].str))+1); _asn1_set_down((yyval.node),(yyvsp[-1].node));} -#line 2292 "ASN1.c" /* yacc.c:1648 */ +#line 2293 "ASN1.c" /* yacc.c:1648 */ break; case 119: -#line 432 "ASN1.y" /* yacc.c:1648 */ +#line 433 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_INTEGER|CONST_ASSIGN); _asn1_set_name((yyval.node),(yyvsp[-3].str)); _asn1_set_value((yyval.node),(yyvsp[0].str),strlen((yyvsp[0].str))+1);} -#line 2300 "ASN1.c" /* yacc.c:1648 */ +#line 2301 "ASN1.c" /* yacc.c:1648 */ break; case 120: -#line 437 "ASN1.y" /* yacc.c:1648 */ +#line 438 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2306 "ASN1.c" /* yacc.c:1648 */ +#line 2307 "ASN1.c" /* yacc.c:1648 */ break; case 121: -#line 438 "ASN1.y" /* yacc.c:1648 */ +#line 439 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2312 "ASN1.c" /* yacc.c:1648 */ +#line 2313 "ASN1.c" /* yacc.c:1648 */ break; case 122: -#line 441 "ASN1.y" /* yacc.c:1648 */ +#line 442 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[0].node);} -#line 2318 "ASN1.c" /* yacc.c:1648 */ +#line 2319 "ASN1.c" /* yacc.c:1648 */ break; case 123: -#line 442 "ASN1.y" /* yacc.c:1648 */ +#line 443 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=(yyvsp[-1].node); _asn1_set_right(_asn1_get_last_right((yyvsp[-1].node)),(yyvsp[0].node));} -#line 2325 "ASN1.c" /* yacc.c:1648 */ +#line 2326 "ASN1.c" /* yacc.c:1648 */ break; case 124: -#line 446 "ASN1.y" /* yacc.c:1648 */ +#line 447 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_OBJECT_ID); _asn1_set_down((yyval.node),(yyvsp[-1].node)); _asn1_set_name((yyval.node),(yyvsp[-3].str));} -#line 2333 "ASN1.c" /* yacc.c:1648 */ +#line 2334 "ASN1.c" /* yacc.c:1648 */ break; case 125: -#line 449 "ASN1.y" /* yacc.c:1648 */ +#line 450 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_OBJECT_ID); _asn1_set_name((yyval.node),(yyvsp[-2].str));} -#line 2340 "ASN1.c" /* yacc.c:1648 */ +#line 2341 "ASN1.c" /* yacc.c:1648 */ break; case 126: -#line 451 "ASN1.y" /* yacc.c:1648 */ +#line 452 "ASN1.y" /* yacc.c:1648 */ {(yyval.node)=_asn1_add_static_node(&e_list, ASN1_ETYPE_OBJECT_ID); _asn1_set_name((yyval.node),(yyvsp[0].str));} -#line 2347 "ASN1.c" /* yacc.c:1648 */ +#line 2348 "ASN1.c" /* yacc.c:1648 */ break; case 127: -#line 475 "ASN1.y" /* yacc.c:1648 */ +#line 476 "ASN1.y" /* yacc.c:1648 */ {(yyval.constant)=CONST_EXPLICIT;} -#line 2353 "ASN1.c" /* yacc.c:1648 */ +#line 2354 "ASN1.c" /* yacc.c:1648 */ break; case 128: -#line 476 "ASN1.y" /* yacc.c:1648 */ +#line 477 "ASN1.y" /* yacc.c:1648 */ {(yyval.constant)=CONST_IMPLICIT;} -#line 2359 "ASN1.c" /* yacc.c:1648 */ +#line 2360 "ASN1.c" /* yacc.c:1648 */ break; -#line 2363 "ASN1.c" /* yacc.c:1648 */ +#line 2364 "ASN1.c" /* yacc.c:1648 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -2587,7 +2588,7 @@ #endif return yyresult; } -#line 480 "ASN1.y" /* yacc.c:1907 */ +#line 481 "ASN1.y" /* yacc.c:1907 */
diff --git a/lib/ASN1.y b/lib/ASN1.y index d1c012f..3e84c60 100644 --- a/lib/ASN1.y +++ b/lib/ASN1.y
@@ -322,7 +322,8 @@ ; bit_string_def : BIT STRING {$$=_asn1_add_static_node(&e_list, ASN1_ETYPE_BIT_STRING);} - | BIT STRING size_def {$$=_asn1_add_static_node(&e_list, ASN1_ETYPE_BIT_STRING|CONST_SIZE);} + | BIT STRING size_def {$$=_asn1_add_static_node(&e_list, ASN1_ETYPE_BIT_STRING|CONST_SIZE); + _asn1_set_down($$,$3);} | BIT STRING'{'bit_element_list'}' {$$=_asn1_add_static_node(&e_list, ASN1_ETYPE_BIT_STRING|CONST_LIST); _asn1_set_down($$,$4);}