void CheckParameters(const wauthn_const_buffer_s &buf, const char *name)
{
- if (!buf.data)
- ThrowMsg(ClientException::InvalidParameter, name << "->data is NULL");
- if (buf.size == 0)
- ThrowMsg(ClientException::InvalidParameter, name << "->size is 0");
+ if (!buf.data && (buf.size != 0))
+ ThrowMsg(ClientException::InvalidParameter,
+ name << "->data is NULL and size is not 0");
+ if (buf.data && (buf.size == 0))
+ ThrowMsg(ClientException::InvalidParameter,
+ name << "->data is not NULL and size is 0");
}
void CheckParameters(const wauthn_const_buffer_s *buf, const char *name)
{
if (!cred_descriptors)
return;
- if (!cred_descriptors->descriptors)
- ThrowMsg(ClientException::InvalidParameter, "cred_descriptors->descriptors is NULL");
- if (cred_descriptors->size == 0)
- ThrowMsg(ClientException::InvalidParameter, "cred_descriptors->size is 0");
+ if (!cred_descriptors->descriptors && (cred_descriptors->size != 0))
+ ThrowMsg(ClientException::InvalidParameter,
+ "cred_descriptors->descriptors is NULL and size is not 0");
+ if (cred_descriptors->descriptors && (cred_descriptors->size == 0))
+ ThrowMsg(ClientException::InvalidParameter,
+ "cred_descriptors->descriptors is not NULL and size is 0");
for (size_t i = 0; i < cred_descriptors->size; ++i)
{
auto desc = cred_descriptors->descriptors[i];
{
if (!hints)
return;
- if (!hints->hints)
- ThrowMsg(ClientException::InvalidParameter, "hints->hints is NULL");
- if (hints->size == 0)
- ThrowMsg(ClientException::InvalidParameter, "hints->size is 0");
+ if (!hints->hints && (hints->size != 0))
+ ThrowMsg(ClientException::InvalidParameter,
+ "hints->hints is NULL and size is not 0");
+ if (hints->hints && (hints->size == 0))
+ ThrowMsg(ClientException::InvalidParameter,
+ "hints->hints is not NULL and size is 0");
for (size_t i = 0; i < hints->size; ++i)
{
auto hint = hints->hints[i];
{
if (!attestation_formats)
return;
- if (!attestation_formats->attestation_formats)
+ if (!attestation_formats->attestation_formats && (attestation_formats->size != 0))
ThrowMsg(ClientException::InvalidParameter,
- "attestation_formats->attestation_formats is NULL");
- if (attestation_formats->size == 0)
- ThrowMsg(ClientException::InvalidParameter, "attestation_formats->size is 0");
+ "attestation_formats->attestation_formats is NULL and size is not 0");
+ if (attestation_formats->attestation_formats && (attestation_formats->size == 0))
+ ThrowMsg(ClientException::InvalidParameter,
+ "attestation_formats->attestation_formats is not NULL and size is 0");
for (size_t i = 0; i < attestation_formats->size; ++i)
{
auto format = attestation_formats->attestation_formats[i];
{
if (!extensions)
return;
- if (!extensions->extensions)
- ThrowMsg(ClientException::InvalidParameter, "extensions->extensions is NULL");
- if (extensions->size == 0)
- ThrowMsg(ClientException::InvalidParameter, "extensions->size is 0");
+ if (!extensions->extensions && (extensions->size != 0))
+ {
+ ThrowMsg(ClientException::InvalidParameter,
+ "extensions->extensions is NULL and size is not 0");
+ }
+ if (extensions->extensions && (extensions->size == 0))
+ {
+ ThrowMsg(ClientException::InvalidParameter,
+ "extensions->extensions is not NULL and size is 0");
+ }
for (size_t i = 0; i < extensions->size; ++i)
{
auto extension = extensions->extensions[i];