fix sqlite3_bind_blob

This commit is contained in:
vms 2021-01-28 00:13:52 +03:00
parent 4179ccd6f9
commit cb62ab800e
2 changed files with 12 additions and 5 deletions

View File

@ -1442,14 +1442,22 @@ static int bindText(
int sqlite3_bind_blob_( int sqlite3_bind_blob_(
sqlite3_stmt *pStmt, sqlite3_stmt *pStmt,
int i, int i,
const void *zData, char *zData,
int nData, int nData,
void (*xDel)(void*) void (*xDel)(void*)
) __EXPORT_NAME(sqlite3_bind_blob) { ) __EXPORT_NAME(sqlite3_bind_blob) {
char *copied_zData = malloc(nData); const int copied_nData = nData / 8;
memcpy(copied_zData, zData, nData); char *copied_zData = malloc(copied_nData);
const int result = sqlite3_bind_blob(pStmt, i, copied_zData, nData, xDel); if (copied_zData == 0) {
return -1;
}
for (int char_id = 0; char_id < copied_nData; ++char_id) {
copied_zData[char_id] = zData[char_id * 8];
}
const int result = sqlite3_bind_blob(pStmt, i, copied_zData, copied_nData, 0);
return result; return result;
} }

View File

@ -28,4 +28,3 @@ int get_result_size(void) {
const char *get_result_ptr() { const char *get_result_ptr() {
return RESULT_PTR; return RESULT_PTR;
} }