The return type of internal_strlen() is 'uptr', but in printf_common() we store the result of internal_strlen() into an 'int' type variable.
When the result value of internal_strlen() is larger than the largest possible value of 'int' type, the implicit conversion from 'uptr' to 'int' will change the result value to a negative value.
Without this change, asan reports a false positive negative-size-param in the added testcase.
COMMON_INTERCEPTOR_READ_RANGE(ctx, argp, 0);