Examples of errors detected by the V540 diagnostic.


V540. Member 'x' should point to string terminated by two 0 characters.


Fennec Media

V540 Member 'lpstrFilter' should point to string terminated by two 0 characters. base windows.c 5309


int JoiningProc(HWND hwnd,UINT uMsg,
  WPARAM wParam,LPARAM lParam)
{
  ...
  OPENFILENAME  lofn;
  memset(&lofn, 0, sizeof(lofn));
  ...
  lofn.lpstrFilter = uni("All Files (*.*)\0*.*");
  ...
}

Similar errors can be found in some other places:

  • V540 Member 'lpstrFilter' should point to string terminated by two 0 characters. base windows.c 986
  • V540 Member 'lpstrFilter' should point to string terminated by two 0 characters. base windows.c 1039
  • V540 Member 'lpstrFilter' should point to string terminated by two 0 characters. shared functions.c 360

Chromium

V540 Member 'lpstrFilter' should point to string terminated by two 0 characters. test_shell_common test_shell_win.cc 643


bool TestShell::PromptForSaveFile(const wchar_t* prompt_title,
                                  FilePath* result) {
  ...
  OPENFILENAME info = {0};
  ...
  info.lpstrFilter = L"*.txt";
  ...
}

WinSCP

V540 Member 'pTo' should point to string terminated by two 0 characters. common.cpp 1659


bool __fastcall RecursiveDeleteFile(....)
{
  SHFILEOPSTRUCT Data;
  memset(&Data, 0, sizeof(Data));
  ....
  Data.pTo = L"";
  ....
}


Do you make errors in the code?

Check your code
with PVS-Studio

Static code analysis
for C, C++ and C#

goto PVS-Studio;