On 03/14/2010 03:14 PM, Andrew Nguyen wrote: > On Sun, Mar 14, 2010 at 3:08 PM, Vitaliy Margolen > <[email protected]> wrote: >> On 03/14/2010 11:04 AM, Andrew Nguyen wrote: >>> + if (dwIndex == i) { >>> lstrcpynW(pwszContainer, p->contName, cchContainer); >>> - return S_OK; >>> + return (cchContainer <= strlenW(p->contName)) ? >>> + DXDIAG_E_INSUFFICIENT_BUFFER : S_OK; >>> } >> >> You sure it's "<="? You still need one more character for \0. > > Yes, because if cchContainer is the same value as what strlenW > returns, that means that the buffer can't store the null terminator, > so the function would correctly report DXDIAG_E_INSUFFICIENT_BUFFER. > lstrcpyn takes care of terminating the string at the appropriate > position.
You right. Vitaliy
