go-sqlite3 icon indicating copy to clipboard operation
go-sqlite3 copied to clipboard

SetFileControlInt performs unsafe conversion from Go int to C int

Open rittneje opened this issue 1 year ago • 0 comments

Go int and C int are not guaranteed to be the same size. But right now SetFileControlInt blindly casts an int to a C.int, which can overflow or underflow. This is partially responsible for the issue described in #1298. (Even if they were the same size, it still would have been wrong for that op code because SQLite always wants a 64-bit argument even on a 32-bit architecture.)

Fix SetFileControlInt to do explicit bounds checking before casting, and return an error if the number would overflow or underflow.

rittneje avatar Nov 22 '24 21:11 rittneje