@@ -449,7 +449,8 @@ VOID _wfp_uninitialize (
449449 {
450450 guid = _r_obj_getarrayitem (callouts , i );
451451
452- _app_setcalloutsecurity (engine_handle , guid , FALSE);
452+ if (guid )
453+ _app_setcalloutsecurity (engine_handle , guid , FALSE);
453454 }
454455 }
455456
@@ -462,6 +463,9 @@ VOID _wfp_uninitialize (
462463 {
463464 guid = _r_obj_getarrayitem (callouts , i );
464465
466+ if (!guid )
467+ continue ;
468+
465469 status = FwpmCalloutDeleteByKey0 (engine_handle , guid );
466470
467471 if (status != ERROR_SUCCESS )
@@ -508,7 +512,7 @@ VOID _wfp_installfilters (
508512 LPGUID guid ;
509513 PITEM_APP ptr_app = NULL ;
510514 PITEM_RULE ptr_rule ;
511- ULONG_PTR enum_key ;
515+ ULONG_PTR enum_key = 0 ;
512516 BOOLEAN is_intransact ;
513517 ULONG status ;
514518
@@ -529,7 +533,8 @@ VOID _wfp_installfilters (
529533 {
530534 guid = _r_obj_getarrayitem (guids , i );
531535
532- _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG );
536+ if (guid )
537+ _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG );
533538 }
534539 }
535540
@@ -542,7 +547,8 @@ VOID _wfp_installfilters (
542547 {
543548 guid = _r_obj_getarrayitem (guids , i );
544549
545- _wfp_deletefilter (engine_handle , guid );
550+ if (guid )
551+ _wfp_deletefilter (engine_handle , guid );
546552 }
547553
548554 _r_obj_dereference (guids );
@@ -551,8 +557,6 @@ VOID _wfp_installfilters (
551557 rules = _r_obj_createlist (10 , & _r_obj_dereference );
552558
553559 // apply apps rules
554- enum_key = 0 ;
555-
556560 _r_queuedlock_acquireshared (& lock_apps );
557561
558562 while (_r_obj_enumhashtablepointer (apps_table , (PVOID_PTR )& ptr_app , NULL , & enum_key ))
@@ -608,7 +612,8 @@ VOID _wfp_installfilters (
608612 {
609613 guid = _r_obj_getarrayitem (guids , i );
610614
611- _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG );
615+ if (guid )
616+ _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG );
612617 }
613618
614619 _r_obj_dereference (guids );
@@ -637,7 +642,7 @@ BOOLEAN _wfp_transact_start (
637642
638643 if (status != ERROR_SUCCESS )
639644 {
640- _r_log_v (LOG_LEVEL_ERROR , & GUID_TrayIcon , L"FwpmTransactionBegin0" , status , L"%s:%" TEXT ( PR_ULONG ) , DBG_ARG_VAR );
645+ _r_log_v (LOG_LEVEL_ERROR , & GUID_TrayIcon , L"FwpmTransactionBegin0" , status , L"%s:%d" , DBG_ARG_VAR );
641646
642647 return FALSE;
643648 }
@@ -659,7 +664,7 @@ BOOLEAN _wfp_transact_commit (
659664 {
660665 FwpmTransactionAbort0 (engine_handle );
661666
662- _r_log_v (LOG_LEVEL_ERROR , & GUID_TrayIcon , L"FwpmTransactionCommit0" , status , L"%s:%" TEXT ( PR_ULONG ) , DBG_ARG_VAR );
667+ _r_log_v (LOG_LEVEL_ERROR , & GUID_TrayIcon , L"FwpmTransactionCommit0" , status , L"%s:%d" , DBG_ARG_VAR );
663668
664669 return FALSE;
665670 }
@@ -867,21 +872,20 @@ VOID _wfp_clearfilter_ids ()
867872{
868873 PITEM_APP ptr_app = NULL ;
869874 PITEM_RULE ptr_rule ;
870- ULONG_PTR enum_key ;
875+ ULONG_PTR enum_key = 0 ;
871876
872877 // clear common filters
873878 _r_obj_cleararray (filter_ids );
874879
875880 // clear apps filters
876881 _r_queuedlock_acquireshared (& lock_apps );
877882
878- enum_key = 0 ;
879-
880883 while (_r_obj_enumhashtablepointer (apps_table , (PVOID_PTR )& ptr_app , NULL , & enum_key ))
881884 {
882885 ptr_app -> is_haveerrors = FALSE;
883886
884- _r_obj_cleararray (ptr_app -> guids );
887+ if (ptr_app -> guids )
888+ _r_obj_cleararray (ptr_app -> guids );
885889 }
886890
887891 _r_queuedlock_releaseshared (& lock_apps );
@@ -947,7 +951,8 @@ VOID _wfp_destroyfilters_array (
947951 {
948952 guid = _r_obj_getarrayitem (guids , i );
949953
950- _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
954+ if (guid )
955+ _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
951956 }
952957
953958 is_intransact = _wfp_transact_start (engine_handle , DBG_ARG_VAR );
@@ -956,7 +961,8 @@ VOID _wfp_destroyfilters_array (
956961 {
957962 guid = _r_obj_getarrayitem (guids , i );
958963
959- _wfp_deletefilter (engine_handle , guid );
964+ if (guid )
965+ _wfp_deletefilter (engine_handle , guid );
960966 }
961967
962968 if (is_intransact )
@@ -1426,7 +1432,8 @@ BOOLEAN _wfp_create4filters (
14261432 {
14271433 guid = _r_obj_getarrayitem (guids , i );
14281434
1429- _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
1435+ if (guid )
1436+ _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
14301437 }
14311438
14321439 _r_queuedlock_acquireshared (& lock_transaction );
@@ -1438,7 +1445,8 @@ BOOLEAN _wfp_create4filters (
14381445 {
14391446 guid = _r_obj_getarrayitem (guids , i );
14401447
1441- _wfp_deletefilter (engine_handle , guid );
1448+ if (guid )
1449+ _wfp_deletefilter (engine_handle , guid );
14421450 }
14431451
14441452 for (ULONG_PTR i = 0 ; i < _r_obj_getlistsize (rules ); i ++ )
@@ -1585,7 +1593,8 @@ BOOLEAN _wfp_create4filters (
15851593 {
15861594 guid = _r_obj_getarrayitem (ptr_rule -> guids , j );
15871595
1588- _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG_VAR );
1596+ if (guid )
1597+ _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG_VAR );
15891598 }
15901599 }
15911600 }
@@ -1643,7 +1652,8 @@ BOOLEAN _wfp_create3filters (
16431652 {
16441653 guid = _r_obj_getarrayitem (guids , i );
16451654
1646- _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
1655+ if (guid )
1656+ _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
16471657 }
16481658
16491659 _r_queuedlock_acquireshared (& lock_transaction );
@@ -1655,7 +1665,8 @@ BOOLEAN _wfp_create3filters (
16551665 {
16561666 guid = _r_obj_getarrayitem (guids , i );
16571667
1658- _wfp_deletefilter (engine_handle , guid );
1668+ if (guid )
1669+ _wfp_deletefilter (engine_handle , guid );
16591670 }
16601671
16611672 for (ULONG_PTR i = 0 ; i < _r_obj_getlistsize (rules ); i ++ )
@@ -1701,7 +1712,8 @@ BOOLEAN _wfp_create3filters (
17011712 {
17021713 guid = _r_obj_getarrayitem (ptr_app -> guids , j );
17031714
1704- _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG_VAR );
1715+ if (guid )
1716+ _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG_VAR );
17051717 }
17061718 }
17071719 }
@@ -1776,7 +1788,8 @@ BOOLEAN _wfp_create2filters (
17761788 {
17771789 guid = _r_obj_getarrayitem (filter_ids , i );
17781790
1779- _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
1791+ if (guid )
1792+ _app_setfiltersecurity (engine_handle , guid , FALSE, DBG_ARG_VAR );
17801793 }
17811794 }
17821795
@@ -1791,7 +1804,8 @@ BOOLEAN _wfp_create2filters (
17911804 {
17921805 guid = _r_obj_getarrayitem (filter_ids , i );
17931806
1794- _wfp_deletefilter (engine_handle , guid );
1807+ if (guid )
1808+ _wfp_deletefilter (engine_handle , guid );
17951809 }
17961810
17971811 _r_obj_cleararray (filter_ids );
@@ -2495,7 +2509,8 @@ BOOLEAN _wfp_create2filters (
24952509 {
24962510 guid = _r_obj_getarrayitem (filter_ids , i );
24972511
2498- _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG_VAR );
2512+ if (guid )
2513+ _app_setfiltersecurity (engine_handle , guid , TRUE, DBG_ARG_VAR );
24992514 }
25002515
25012516 _r_queuedlock_releaseshared (& lock_transaction );
@@ -2584,8 +2599,8 @@ ULONG _wfp_dumpfilters (
25842599 FWPM_FILTER0 * filter ;
25852600 PR_ARRAY guids = NULL ;
25862601 HANDLE enum_handle = NULL ;
2587- ULONG status ;
25882602 UINT32 return_count ;
2603+ ULONG status ;
25892604
25902605 * out_buffer = NULL ;
25912606
0 commit comments