False Positive Diagnostic on String Operations Reported by Intel® Inspector

ID 标签 689765
已更新 11/2/2018
版本 Latest
公共

author-image

作者

Intel® Inspector is a powerful tool that can detect errors in memory and threading in your application. For memory errors it can detect if you reference illegal or uninitialized memory. These type of error can lead to crashes or non-deterministic program behavior. However, in some cases, Intel Inspector can report an issue and the program can still be correct. We call these type of issues “False positives”.

For example, there are certain string operations that use vector(SIMD) instructions to calculate the string length. They read a string pointer in 32 byte chunks and check for a NULL character in each chunk that it reads. If the string size is not a multiple of 32, then it reads garbage in the memory region after the NULL. Intel Inspector reports the following diagnostic:

diagnostic reports

Technically this is a true error report, because the application reads data outside of a provided region and the data is not secure. Since this is a commonly used programming technique this type of error can easily be suppressed using the Intel Inspector suppression file mechanism: Intel® Inspector User Guide for Windows* OS

"