Fixed snprintf return value checks

This commit is contained in:
akallabeth 2022-04-27 21:37:48 +02:00 committed by akallabeth
parent 2dfc1ddb12
commit 507722aca4
2 changed files with 11 additions and 2 deletions

View File

@ -107,8 +107,11 @@ void BitDump(const char* tag, UINT32 level, const BYTE* buffer, UINT32 length, U
{
const char* str = strs[buffer[i / 8]];
const int nbits = (length - i) > 8 ? 8 : (length - i);
pos += _snprintf(&pbuffer[pos], length - pos, "%.*s ", nbits, str);
const int rc = _snprintf(&pbuffer[pos], length - pos, "%.*s ", nbits, str);
if (rc < 0)
return;
pos += (size_t)rc;
if ((i % 64) == 0)
{
pos = 0;

View File

@ -151,13 +151,19 @@ void winpr_CArrayDump(const char* tag, UINT32 level, const BYTE* data, size_t le
pos = 0;
for (i = 0; i < line; i++)
pos += _snprintf(&buffer[pos], llen - pos, "\\x%02" PRIX8 "", p[i]);
{
const int rc = _snprintf(&buffer[pos], llen - pos, "\\x%02" PRIX8 "", p[i]);
if (rc < 0)
goto fail;
pos += (size_t)rc;
}
WLog_LVL(tag, level, "%s", buffer);
offset += line;
p += line;
}
fail:
free(buffer);
}