Advertisement
ffilz

chkpt script to audit pthread.*init etc.

Apr 5th, 2023
605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.60 KB | None | 0 0
  1. echo /home/ffilz/bin/chkpt >t
  2. echo ======================================== >>t
  3. echo "use  of PTHREAD...INITIALIZER" >>t
  4. echo ---------------------------------------- >>t
  5. grep -n 'PTHREAD.*INITIALIZER' `find . -name '*.[ch]' | egrep -v 'multilock'` \
  6. | egrep -v '\#define|\#undef|static inline|winpthreads' \
  7. >>t
  8. echo ======================================== >>t
  9. echo "unmatched mutex definition and init" >>t
  10. echo ---------------------------------------- >>t
  11. egrep -n 'pthread_mutex_t |PTHREAD_MUTEX_init' `find . -name '*.[ch]' | egrep -v 'libntirpc|multilock'` | egrep -v '\#define|pthread_mutex_t \*' \
  12. | sed -e 's@./\([a-zA-Z_/0-9\.]*:[0-9][0-9]*:\)\(.*\)@\1 \2@' | sed -e 's@\(.*\)extern\(.*\)@\1\2@' | sed -e 's@\(.*\)/\*.*\*\/\(.*\)@\1\2@' \
  13. | sed -e 's@\(.*\)/\*.*$@\1@' | sed -e 's@\(.*PTHREAD_MUTEX_init\)..\([^,]*\).*@\1 \2@' | sed -e 's@\(.*\);.*$@\1@' \
  14. | sed -e 's@\([a-zA-Z_0-9:]*:\)[^pP][^pP]*\([pP][a-zA-Z_]*\)[^a-zA-Z_]\(.*\)@\1 \2 \3@' \
  15. | sed -e 's@\(.*PTHREAD_MUTEX_init\) \([^\.]*\)\([\.\>]\)\([^\.\>]*\)@\1=\2\3 \4@' \
  16. | sort -k3 \
  17. | egrep -v 'admin_control_mtx|all_locks_mutex|blocked_locks_mutex|cached_open_owners_lock|dbus_bcast_lock|enforcing_mutex|export_admin_mutex|fsal_fd_mutex|fsal_lock|grace_mutex|grace_op_lock|granted_mutex|init_mtx|rpcLock' \
  18. | egrep -v 'cb_mutex|cid_mutex|context_lock|cr_mutex|init_mutex|iolock|listlock|nlm_async_resp_mutex|norefs_mutex|nsm_mutex|pool_mutex|proxyv4_clientid_mutex|queues_mutex' \
  19. | egrep -v 'sle_mutex|so_mutex|ssc_mutex|state_mutex|st_lock|up_mutex|up_mutex|work_mutex|mutex_localtime|9p_dispatcher.c.*mutex|dm_tx|ql_mtx' \
  20. | egrep -v 'chan_mtx|dle_mtx|dm_mtx|drc_mtx|drc_st_mtx|dre_mtx|fre_mtx|frt_mtx|fsc_mtx|flb_lock|glfs_lock|upvector_mutex|wq_mtx|sock_lock|gd_lock|oq_lock|slot_lock' \
  21. | egrep -v 'all_state_owners_mutex|all_state_v4_mutex|ple_mtx' \
  22. >>t
  23. echo ======================================== >>t
  24. echo "unmatched condition definition and init" >>t
  25. echo ---------------------------------------- >>t
  26. egrep -n 'pthread_cond_t |PTHREAD_COND_init' `find . -name '*.[ch]' | egrep -v 'libntirpc|multilock'` | egrep -v '\#define|pthread_cond_t \*' \
  27. | sed -e 's@./\([a-zA-Z_/0-9\.]*:[0-9][0-9]*:\)\(.*\)@\1 \2@' | sed -e 's@\(.*\)extern\(.*\)@\1\2@' | sed -e 's@\(.*\)/\*.*\*\/\(.*\)@\1\2@' \
  28. | sed -e 's@\(.*\)/\*.*$@\1@' | sed -e 's@\(.*PTHREAD_COND_init\)..\([^,]*\).*@\1 \2@' | sed -e 's@\(.*\);.*$@\1@' \
  29. | sed -e 's@\([a-zA-Z_0-9:]*:\)[^pP][^pP]*\([pP][a-zA-Z_]*\)[^a-zA-Z_]\(.*\)@\1 \2 \3@' \
  30. | sed -e 's@\(.*PTHREAD_COND_init\) \([^\.]*\)\([\.\>]\)\([^\.\>]*\)@\1=\2\3 \4@' \
  31. | egrep -v '_9pw_cond|admin_control_cv|cb_cond|cond_sessionid|dle_cv|enforcing_cond|fre_cv|fre_cv|fsal_fd_cond|fsc_cv|init_cond|iowait|need_context' \
  32. | egrep -v 'nlm_async_resp_cond|norefs_cond|oq_cond|sockless|up_cond|work_avail_condition|work_cond|work_done_condition|wq_cv|flc_condition' \
  33. | sort -k3 \
  34. >>t
  35. echo ======================================== >>t
  36. echo "unmatched init/destroy" >>t
  37. echo ---------------------------------------- >>t
  38. egrep -n 'PTHREAD_[A-Z]*_init|PTHREAD_[A-Z]*_destroy' `find . -name '*.[ch]' | egrep -v 'libntirpc|multilock'` \
  39. | egrep -v '\#define PTHREAD.*_init|\#define PTHREAD.*_destroy' \
  40. | sed -e 's@./\([a-zA-Z_/0-9\.]*:[0-9][0-9]*:\)\(.*\)@\1 \2@' \
  41. | sed -e 's@\(.*\)/\*.*\*\/\(.*\)@\1\2@' \
  42. | sed -e 's@\(.*\)/\*.*$@\1@' | sed -e 's@\(.*PTHREAD.*_init\).\([^,]*\).*@\1 \2@' | sed -e 's@\(.*\);.*$@\1@' \
  43. | sed -e 's@\(.*\)/\*.*$@\1@' | sed -e 's@\(.*PTHREAD.*_init\)..\([^\)]*\).*@\1 \2@' | sed -e 's@\(.*\);.*$@\1@' \
  44. | sed -e 's@\(.*\)/\*.*$@\1@' | sed -e 's@\(.*PTHREAD.*_destroy\)..\([^\)]*\).*@\1 \2@' | sed -e 's@\(.*\);.*$@\1@' \
  45. | sed -e 's@\([a-zA-Z_0-9:]*:\)[^pP][^pP]*\([pP][a-zA-Z_]*\)[^a-zA-Z_]\(.*\)@\1 \2 \3@' \
  46. | sed -e 's@\(.*PTHREAD.*_init\) \([^\.]*\)\([\.\>]\)\([^\.\>]*\)@\1=\2\3 \4@' \
  47. | sed -e 's@\(.*PTHREAD.*_destroy\) \(.*\)\([\.\>]\)\([^\.\>]*\)@\1=\2\3 \4@' \
  48. | sort -k3 -k2r \
  49. | grep -v 'PTHREAD.*ATTR' \
  50. | egrep -v '_9pw_cond|_9pw_mutex|acl_lock|admin_control_cv|admin_control_mtx|all_locks_mutex|all_state_owners_mutex|all_state_v4_mutex|attr_lock|blocked_locks_mutex' \
  51. | egrep -v 'cb_cond|cb_mutex|chan_mtx|cid_mutex|cih_lock|cip_lock|client_lock|cond_sessionid|conn_lock|content_lock|context_lock|cached_open_owners_lock' \
  52. | egrep -v 'cr_mutex|dbus_bcast_lock|dle_cv|dle_mtx|dm_mtx|dns_auth_lock|dre_mtx|eid_lock|enforcing_cond|enforcing_mutex|exp_lock|export_admin_mutex' \
  53. | egrep -v 'export_opt_lock|flb_lock|flc_condition|fsal_fd_cond|fsal_fd_mutex|fsal_lock|fsc_cv|fsc_mtx|fsloc_lock|fsm_lock|gc_auth_lock|gd_lock' \
  54. | egrep -v 'glfs_lock|grace_mutex|grace_op_lock|granted_mutex|ht_lock|idmapper_group_lock|idmapper_user_lock|init_mtx|jct_lock|listlock|log_rwlock|mutex_localtime' \
  55. | egrep -v 'need_context|nit_cond|nit_mutex|ng_lock|nlm_async_resp_cond|nlm_async_resp_mutex|norefs_cond|norefs_mutex|nsm_mutex|obj_lock|ple_mtx|proxyv4_clientid_mutex' \
  56. | egrep -v 'ql_mtx|sid_lock|sle_mutex|slot_lock|sockless|sock_lock|ssc_mutex|st_lock|uid2grp_user_lock|up_cond|up_mutex|upvector_mutex|url_rwlock|work_cond' \
  57. | egrep -v 'work_mutex|wq_cv|drc_mtx|fre_cv|fre_mtx|frt_mtx|state_mutex|so_mutex|iolock|iowait|drc_st_mtx|wq_mtx|oq_cond|oq_lock|winbind_auth_lock' \
  58. | egrep -v '_9p_rq_st_spinlock|_9p_rq_spinlock|fsd_spin|fs_lock' \
  59. >>t
  60. echo ======================================== >>t
  61. echo "unmatched init/destroy in libntirpc" >>t
  62. echo ---------------------------------------- >>t
  63. egrep -n 'pthread_[a-z]*_init|pthread_[a-z]*_destroy|mutex_init|mutex_destroy|cond_init|cond_destroy|spin_init|spin_destroy' \
  64. `find libntirpc -name '*.[ch]' | egrep -v 'multilock'` \
  65. | egrep -v '\#define|\#undef|static inline|winpthreads' \
  66. >>t
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement