Hi,
On 7/8/21 4:07 PM, Kuppuswamy, Sathyanarayanan wrote:
On 7/8/21 1:16 AM, Xiaoyao Li wrote:
quoted
Sorry I guess I didn't state it clearly during internal review.
I suggest something like this
if (ret != TDCALL_SUCCESS) {
if (TDCALL_RETURN_CODE(ret) == TDCALL_INVALID_OPERAND)
return -EINVAL;
else if (TDCALL_RETURN_CODE(ret) == TDCALL_OPERAND_BUSY)
return -EBUSY;
else
return -EFAULT; //I'm not sure if -EFAULT is proper.
}
As per current spec, TDCALL_INVALID_OPERAND, TDCALL_OPERAND_BUSY and
0 are the only possible return values. So I have checked for failure case
in if condition and returned success by default. Any reason for specifically
checking for success code ?
Yes, new error codes might be introduced and you might forget to
update this (or other) checks.
Checking for errors really MUST always be done by checking for
ret != success (typically ret != 0 or ret < 0).
Only checking for known error codes means that if somehow an
unknown error code gets thrown this gets treated as success,
which is not acceptable behavior.
Regards,
Hans