Похож на ошибку SAL. Код:Анализ кода не понимает параметр _In_opt_ Аннотация?
PAAFILEFILTER_PROTECTED_FILE curFile = NULL;
try
{
status = GetProtectedFile(FileIdInfo, instanceContext, &curFile);
if(!NT_SUCCESS(status))
{
TraceError("Can't GetProtectedFile with status: %!STATUS!\n", status);
leave;
}
...
finally
{
if(NT_SUCCESS(status))
{
LogMessage(AAFILEFILTER_FILE_UNPROTECTED, NULL, NULL, NULL, 0, (PUCHAR)FileIdInfo, sizeof(AAFILE_ID_INFORMATION));
}
else
{
TraceProtectedFile(curFile);
}
}
И код Analysys дать мне C6102 - Using variable from failed function call
на линии TraceProtectedFile(curFile)
; но TraceProtectedFile есть прототип
_In_opt_ PAAFILEFILTER_PROTECTED_FILE protectedFile
_In_opt_ значит "_In_opt_ is the same as _In_, except that the input parameter is allowed to be NULL and, therefore, the function should check for this."
.. не undestand если CA не может обрабатывать такие простые вещи, то, что он может :(
Согласен с вами ... то есть более чище. Но все же это ошибка CA :) C6102 никогда не должен подниматься для _In_opt_ parametr IMHO. –