From: Russ Combs Date: Sat, 17 Dec 2016 20:41:33 +0000 (-0500) Subject: fix appid service dispatch handling issue X-Git-Tag: 3.0.0-233~136 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=608ef87fe99689db15ce2b55a3ffaae75a3285f6;p=thirdparty%2Fsnort3.git fix appid service dispatch handling issue thanks to João Soares for reporting the issue --- diff --git a/src/network_inspectors/appid/service_plugins/service_base.cc b/src/network_inspectors/appid/service_plugins/service_base.cc index 0b98db2e2..13e043f6a 100644 --- a/src/network_inspectors/appid/service_plugins/service_base.cc +++ b/src/network_inspectors/appid/service_plugins/service_base.cc @@ -1881,11 +1881,15 @@ int AppIdDiscoverService(Packet* p, const int dir, AppIdSession* asd) for(unsigned i = 0; i < num_failed; i++) { SF_LNODE* iter; - RNAServiceElement* service = (RNAServiceElement*)sflist_first(asd->candidate_service_list, &iter); - assert(service); + RNAServiceElement* service = (RNAServiceElement*)sflist_first( + asd->candidate_service_list, &iter); + + if ( !service ) + break; while( service != failed_svc[i] ) service = (RNAServiceElement*)sflist_next(&iter); + sflist_remove_node(asd->candidate_service_list, iter); }