@@ -481,15 +481,18 @@ boolean init_basig_golang_datatype() {
481481 long type_addr_value =0 ;
482482 long typelink_addr_value =0 ;
483483 long typelink_len =0 ;
484+ Address text_addr =null ;
484485 boolean is_go16 =false ;
485486 if (is_go118 ) {
486487 type_addr_value =go_bin .get_address_value (base_addr , 35 *pointer_size , pointer_size );
487488 typelink_addr_value =go_bin .get_address_value (base_addr , 42 *pointer_size , pointer_size );
488489 typelink_len =go_bin .get_address_value (base_addr , 43 *pointer_size , pointer_size );
490+ text_addr =go_bin .get_address (go_bin .get_address_value (base_addr , 22 *pointer_size , pointer_size ));
489491 }else if (is_go116 ) {
490492 type_addr_value =go_bin .get_address_value (base_addr , 35 *pointer_size , pointer_size );
491493 typelink_addr_value =go_bin .get_address_value (base_addr , 40 *pointer_size , pointer_size );
492494 typelink_len =go_bin .get_address_value (base_addr , 41 *pointer_size , pointer_size );
495+ text_addr =go_bin .get_address (go_bin .get_address_value (base_addr , 22 *pointer_size , pointer_size ));
493496 }else {
494497 type_addr_value =go_bin .get_address_value (base_addr , 25 *pointer_size , pointer_size );
495498 typelink_addr_value =go_bin .get_address_value (base_addr , 30 *pointer_size , pointer_size );
@@ -508,12 +511,14 @@ boolean init_basig_golang_datatype() {
508511 is_go16 =true ;
509512 typelink_len =go_bin .get_address_value (base_addr , 26 *pointer_size , pointer_size );
510513 }
514+ text_addr =go_bin .get_address (go_bin .get_address_value (base_addr , 12 *pointer_size , pointer_size ));
511515 }
512516
517+
513518 Address type_addr =go_bin .get_address (type_addr_value );
514519 Address typelink_addr =go_bin .get_address (typelink_addr_value );
515520
516- if (( !go_bin .is_valid_address (type_addr ) || !go_bin .is_valid_address (typelink_addr )) && !is_go16 )
521+ if (!go_bin .is_valid_address (type_addr ) || ( !go_bin .is_valid_address (typelink_addr ) && !is_go16 ) || ! text_addr . equals ( go_bin . get_section ( ".text" )) )
517522 {
518523 base_addr =go_bin .get_address (base_addr , 4 );
519524 if (base_addr ==null ) {
0 commit comments