diff --git a/src/driver/fortdrv.c b/src/driver/fortdrv.c index 326077da..e7d9adc8 100644 --- a/src/driver/fortdrv.c +++ b/src/driver/fortdrv.c @@ -195,13 +195,16 @@ fort_callout_classify_v4 (const FWPS_INCOMING_VALUES0 *inFixedValues, conf_flags = conf_ref->conf.flags; - flags = inFixedValues->incomingValue[flagsField].value.uint32; - - if (!conf_flags.filter_enabled - || (flags & FWP_CONDITION_FLAG_IS_LOOPBACK)) + if (!conf_flags.filter_enabled) goto permit; + flags = inFixedValues->incomingValue[flagsField].value.uint32; remote_ip = inFixedValues->incomingValue[remoteIpField].value.uint32; + + if ((flags & FWP_CONDITION_FLAG_IS_LOOPBACK) + || remote_ip == 0xFFFFFFFF) // Local broadcast + goto permit; + process_id = (UINT32) inMetaValues->processId; path_len = inMetaValues->processPath->size - sizeof(WCHAR); // chop terminating zero path = inMetaValues->processPath->data;