| 300 | #endif // __APPLE__ |
| 301 | |
| 302 | inline bool IsValidStringFieldArgs(SQLPOINTER diag_info_ptr, SQLSMALLINT buffer_length, |
| 303 | SQLSMALLINT* string_length_ptr, bool is_unicode) { |
| 304 | const SQLSMALLINT char_size = is_unicode ? GetSqlWCharSize() : sizeof(char); |
| 305 | const bool has_valid_buffer = |
| 306 | buffer_length == SQL_NTS || (buffer_length >= 0 && buffer_length % char_size == 0); |
| 307 | |
| 308 | // regardless of capacity return false if invalid |
| 309 | if (diag_info_ptr && !has_valid_buffer) { |
| 310 | return false; |
| 311 | } |
| 312 | |
| 313 | return has_valid_buffer || string_length_ptr; |
| 314 | } |
| 315 | |
| 316 | SQLRETURN SQLGetDiagField(SQLSMALLINT handle_type, SQLHANDLE handle, |
| 317 | SQLSMALLINT rec_number, SQLSMALLINT diag_identifier, |
no test coverage detected