@@ -605,14 +605,23 @@ NR_PHP_WRAPPER_END
605
605
#endif // OAPI
606
606
607
607
static bool nr_is_invalid_key_val_arr (nr_php_string_hash_key_t * key ,
608
- zval * val ) {
609
- if (NULL == key || 0 == ZEND_STRING_LEN (key )
610
- || 0 == nr_php_is_zval_valid_array (val )
608
+ zval * val ,
609
+ const char * key_ident ) {
610
+ if (NULL == key || 0 == ZEND_STRING_LEN (key )) {
611
+ nrl_warning (NRL_FRAMEWORK , "hookImplementationsMap[%s]: invalid key" ,
612
+ key_ident );
613
+ return true;
614
+ }
615
+
616
+ if (0 == nr_php_is_zval_valid_array (val )
611
617
|| 0 == zend_hash_num_elements (Z_ARRVAL_P (val ))) {
618
+ nrl_warning (NRL_FRAMEWORK ,
619
+ "hookImplementationsMap[%s]: invalid value for key '%s'" ,
620
+ key_ident , NRSAFESTR (ZEND_STRING_VALUE (key )));
612
621
return true;
613
- } else {
614
- return false;
615
622
}
623
+
624
+ return false;
616
625
}
617
626
618
627
/*
@@ -646,25 +655,27 @@ static bool nr_drupal_hook_attribute_instrument(zval* module_handler) {
646
655
647
656
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (hook_implementation_map ), hook_key ,
648
657
hook_val ) {
649
- if (nr_is_invalid_key_val_arr (hook_key , hook_val )) {
650
- nrl_warning (NRL_FRAMEWORK ,
651
- "hookImplementationsMap[hook]: invalid key or value" );
658
+ if (nr_is_invalid_key_val_arr (hook_key , hook_val , "hook" )) {
652
659
return false;
653
660
}
654
661
655
662
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (hook_val ), class_key , class_val ) {
656
- if (nr_is_invalid_key_val_arr (class_key , class_val )) {
657
- nrl_warning (NRL_FRAMEWORK ,
658
- "hookImplementationsMap[class]: invalid key or value" );
663
+ if (nr_is_invalid_key_val_arr (class_key , class_val , "class" )) {
659
664
return false;
660
665
}
661
666
662
667
ZEND_HASH_FOREACH_STR_KEY_VAL (Z_ARRVAL_P (class_val ), method_key ,
663
668
module_val ) {
664
- if (NULL == method_key
665
- || 0 == nr_php_is_zval_valid_string (module_val )) {
669
+ if (NULL == method_key ) {
666
670
nrl_warning (NRL_FRAMEWORK ,
667
- "hookImplementationsMap[method]: invalid key or value" );
671
+ "hookImplementationsMap[method]: invalid key" );
672
+ return false;
673
+ }
674
+ if (0 == nr_php_is_zval_valid_string (module_val )) {
675
+ nrl_warning (
676
+ NRL_FRAMEWORK ,
677
+ "hookImplementationsMap[method]: invalid value for key '%s'" ,
678
+ NRSAFESTR (ZEND_STRING_VALUE (method_key )));
668
679
return false;
669
680
}
670
681
0 commit comments