yerzhan7 / sgx_sqlite Goto Github PK
View Code? Open in Web Editor NEWSQLite database inside a secure Intel SGX enclave (Linux)
License: The Unlicense
SQLite database inside a secure Intel SGX enclave (Linux)
License: The Unlicense
Hello,
sealing/unsealing the db file will interrupt with the open and close operation of the DB ?
Thanks,
LA
Hi,
While fuzzing sqlite we found data races on the following objects:
vfsList
randomnessPid
inodeList
db
sqlite3PendingByte
We believe this project is not supposed to be used in multi-thread config and tcs_num should be 1.
I tried standard SQLite commands in your db like ".tables" but only got a syntax error. Would you please explain the usage of your db here?
seems no license is included (although it can be derived from the intel and sqlite license). Could you add one and give permission to clone this project to bootstrap running sqlite in an enclave?
ecall_closedb() must set db pointer to NULL after free the object.
void ecall_closedb(){
sqlite3_close(db);
db = NULL; // change
ocall_println_string("Enclave: Closed database connection");
}
Otherwise a check like:
if (db == 0){
return ERR;
}
magic = db->magic_byte;
will fail from multiple places.
Hi,sir,
I think there is a security issue here,could you help me confirm it?
in sqlite.c:
if( m!=0 ){
struct stat statbuf; // statbuf is not initializatized,which may exist some sensitive data
if( osFstat(fd, &statbuf)==0 // when osFstat is invoked , the ocall ocall_stat will be invoked later
&& statbuf.st_size==0
&& (statbuf.st_mode&0777)!=m
){
osFchmod(fd, m);
}
}
in edl:
int ocall_stat([in, string] const char *path, [in, out, size=size] struct stat *buf, size_t size);
, because buf
is in
, the original data in buf
will be copied out of the Enclave , which leads to an information leakage.
solution:
memset statbuf to zero before invoke osFstat
or remove in
flag in edl
In seekAndRead
, osRead
call ocall_read
, and get got
from host, but without proper check, and then it used in memset
of unixRead
, cause &pBuf[got]
stack overflow
SQLITE_PRIVATE int sqlite3BtreeOpen(...) {
unsigned char zDbHeader[100];
rc = sqlite3PagerReadFileheader(...,zDbHeader); // sqlite3PagerReadFileheader call unixRead, and zDbHeader is passed to pBuf
}
static int unixRead(..., void *pBuf, ...) {
got = seekAndRead(...);
// if got is not equal to amt or smaller than 0
memset(&((char*)pBuf)[got], 0, amt-got); // &pBuf[got] stack overflow
}
static int seekAndRead(...) {
got = osRead(id->h, pBuf, cnt); // osRead call ocall_read, and get got from host
return got;
}
Hi,
While fuzzing existing SGX applications, we were able to find hangs and crashes on SQLite, as reported by the attachments. The attachment is the output of the fuzzer which is the exact same template as AFL-Fuzzer.
out.zip
Thanks,
Arslan
Data races among the following shared variables and functions.
shared variable | function1 | function2 |
---|---|---|
azDirs.11933 | unixGetTempname | unixGetTempname |
azDirs.11933+0x8 | unixGetTempname | unixGetTempname |
dummy.17089+0x8 | multiSelect | multiSelect |
dummy.17089+0x8 | sqlite3ExprCodeTarget | multiSelect |
dummy.17089+0x8 | sqlite3ExprCodeTarget | sqlite3ExprCodeTarget |
inodeList | unixClose | unixClose |
inodeList | unixClose | unixOpen |
inodeList | unixOpen | unixOpen |
mem0 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
mem0+0x10 | sqlite3ScratchFree | sqlite3_initialize.part.319 |
mem0+0x10 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
mem0+0x18 | sqlite3ScratchFree | sqlite3ScratchFree |
mem0+0x18 | sqlite3ScratchFree | sqlite3_initialize.part.319 |
mem0+0x18 | sqlite3ScratchMalloc | sqlite3ScratchFree |
mem0+0x18 | sqlite3ScratchMalloc | sqlite3ScratchMalloc |
mem0+0x18 | sqlite3ScratchMalloc | sqlite3_initialize.part.319 |
mem0+0x18 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
mem0+0x20 | sqlite3ScratchFree | sqlite3_initialize.part.319 |
mem0+0x20 | sqlite3ScratchMalloc | sqlite3ScratchFree |
mem0+0x20 | sqlite3ScratchMalloc | sqlite3ScratchMalloc |
mem0+0x20 | sqlite3ScratchMalloc | sqlite3_initialize.part.319 |
mem0+0x20 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
mem0+0x24 | pcache1FetchStage2 | sqlite3_soft_heap_limit64 |
mem0+0x24 | sqlite3Malloc | pcache1FetchStage2 |
mem0+0x24 | sqlite3Malloc | sqlite3Malloc |
mem0+0x24 | sqlite3Malloc | sqlite3VdbeExec |
mem0+0x24 | sqlite3Malloc | sqlite3_soft_heap_limit64 |
mem0+0x24 | sqlite3_soft_heap_limit64 | sqlite3VdbeExec |
mem0+0x24 | sqlite3_soft_heap_limit64 | sqlite3_soft_heap_limit64 |
mem0+0x8 | sqlite3Malloc | sqlite3_initialize.part.319 |
mem0+0x8 | sqlite3Malloc | sqlite3_soft_heap_limit64 |
mem0+0x8 | sqlite3Realloc | sqlite3_initialize.part.319 |
mem0+0x8 | sqlite3Realloc | sqlite3_soft_heap_limit64 |
mem0+0x8 | sqlite3_initialize.part.319 | sqlite3Pragma |
mem0+0x8 | sqlite3_initialize.part.319 | sqlite3_soft_heap_limit64 |
mem0+0x8 | sqlite3_soft_heap_limit64 | sqlite3Pragma |
mem0+0x8 | sqlite3_soft_heap_limit64 | sqlite3_soft_heap_limit64 |
pcache1_g+0x50 | pcache1Init | sqlite3_initialize.part.319 |
pcache1_g+0x58 | pcache1Init | pcache1FetchStage2 |
pcache1_g+0x58 | pcache1Init | pcache1Init |
pcache1_g+0x60 | pcache1FetchStage2 | sqlite3_initialize.part.319 |
pcache1_g+0x60 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
pcache1_g+0x64 | pcache1Alloc | sqlite3_initialize.part.319 |
pcache1_g+0x64 | pcache1Free | sqlite3_initialize.part.319 |
pcache1_g+0x64 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
pcache1_g+0x68 | pcache1Free | sqlite3_initialize.part.319 |
pcache1_g+0x68 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
pcache1_g+0x70 | pcache1Free | sqlite3_initialize.part.319 |
pcache1_g+0x70 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
pcache1_g+0x80 | pcache1Alloc | pcache1Alloc |
pcache1_g+0x80 | pcache1Alloc | pcache1Free |
pcache1_g+0x80 | pcache1Alloc | sqlite3_initialize.part.319 |
pcache1_g+0x80 | pcache1Free | pcache1Free |
pcache1_g+0x80 | pcache1Free | sqlite3_initialize.part.319 |
pcache1_g+0x80 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
pcache1_g+0x88 | pcache1Alloc | pcache1Alloc |
pcache1_g+0x88 | pcache1Alloc | pcache1Free |
pcache1_g+0x88 | pcache1Alloc | sqlite3_initialize.part.319 |
pcache1_g+0x88 | pcache1Free | pcache1Free |
pcache1_g+0x88 | pcache1Free | sqlite3_initialize.part.319 |
pcache1_g+0x88 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
pcache1_g+0x8c | pcache1Alloc | pcache1FetchStage2 |
pcache1_g+0x8c | pcache1Alloc | pcache1Free |
pcache1_g+0x8c | pcache1Alloc | sqlite3_initialize.part.319 |
pcache1_g+0x8c | pcache1FetchStage2 | sqlite3_initialize.part.319 |
pcache1_g+0x8c | pcache1Free | pcache1FetchStage2 |
randomnessPid | unixOpen | unixOpen |
randomnessPid | unixRandomness | unixOpen |
randomnessPid | unixRandomness | unixRandomness |
sqlite3Autoext | sqlite3_auto_extension | openDatabase |
sqlite3Autoext | sqlite3_auto_extension | sqlite3_auto_extension |
sqlite3Autoext | sqlite3_auto_extension | sqlite3_reset_auto_extension |
sqlite3Autoext | sqlite3_cancel_auto_extension | openDatabase |
sqlite3Autoext | sqlite3_cancel_auto_extension | sqlite3_auto_extension |
sqlite3Autoext | sqlite3_cancel_auto_extension | sqlite3_cancel_auto_extension |
sqlite3Autoext | sqlite3_cancel_auto_extension | sqlite3_reset_auto_extension |
sqlite3Autoext | sqlite3_reset_auto_extension | openDatabase |
sqlite3Autoext+0x8 | sqlite3_auto_extension | openDatabase |
sqlite3Autoext+0x8 | sqlite3_auto_extension | sqlite3_auto_extension |
sqlite3Autoext+0x8 | sqlite3_auto_extension | sqlite3_reset_auto_extension |
sqlite3Autoext+0x8 | sqlite3_cancel_auto_extension | sqlite3_auto_extension |
sqlite3Autoext+0x8 | sqlite3_cancel_auto_extension | sqlite3_reset_auto_extension |
sqlite3Autoext+0x8 | sqlite3_reset_auto_extension | openDatabase |
sqlite3Autoext+0x8 | sqlite3_reset_auto_extension | sqlite3_reset_auto_extension |
sqlite3Config | sqlite3Malloc | sqlite3_config |
sqlite3Config | sqlite3Realloc | sqlite3_config |
sqlite3Config | sqlite3ScratchFree | sqlite3_config |
sqlite3Config | sqlite3ScratchMalloc | sqlite3_config |
sqlite3Config | sqlite3_config | sqlite3_config |
sqlite3Config | sqlite3_free | sqlite3_config |
sqlite3Config+0x10 | sqlite3_config | sqlite3_config |
sqlite3Config+0x10 | sqlite3_config | whereLoopAddBtree |
sqlite3Config+0x100 | sqlite3PcacheTruncate | sqlite3_config |
sqlite3Config+0x100 | sqlite3_config | sqlite3_config |
sqlite3Config+0x108 | sqlite3PcacheSetPageSize.part.26 | sqlite3_config |
sqlite3Config+0x108 | sqlite3_config | sqlite3PagerClose |
sqlite3Config+0x108 | sqlite3_config | sqlite3_config |
sqlite3Config+0x110 | sqlite3_config | sqlite3_config |
sqlite3Config+0x110 | sqlite3_db_release_memory | sqlite3_config |
sqlite3Config+0x130 | sqlite3_config | openDatabase |
sqlite3Config+0x130 | sqlite3_config | sqlite3Pragma |
sqlite3Config+0x130 | sqlite3_config | sqlite3_config |
sqlite3Config+0x130 | sqlite3_config | unixOpen |
sqlite3Config+0x138 | sqlite3_config | sqlite3_config |
sqlite3Config+0x138 | sqlite3_config | unixFileControl |
sqlite3Config+0x140 | sqlite3ScratchFree | sqlite3_config |
sqlite3Config+0x140 | sqlite3ScratchFree | sqlite3_initialize.part.319 |
sqlite3Config+0x140 | sqlite3_config | sqlite3VdbeExec |
sqlite3Config+0x140 | sqlite3_config | sqlite3_config |
sqlite3Config+0x140 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x140 | sqlite3_initialize.part.319 | sqlite3VdbeExec |
sqlite3Config+0x140 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x148 | sqlite3ScratchMalloc | sqlite3_config |
sqlite3Config+0x148 | sqlite3ScratchMalloc | sqlite3_initialize.part.319 |
sqlite3Config+0x148 | sqlite3_config | sqlite3_config |
sqlite3Config+0x148 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x148 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x14c | sqlite3_config | sqlite3_config |
sqlite3Config+0x14c | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x14c | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x150 | pcache1Init | sqlite3_config |
sqlite3Config+0x150 | pcache1Init | sqlite3_initialize.part.319 |
sqlite3Config+0x150 | sqlite3_config | sqlite3_config |
sqlite3Config+0x150 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x150 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x158 | sqlite3_config | sqlite3_config |
sqlite3Config+0x158 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x158 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x15c | pcache1Init | sqlite3_config |
sqlite3Config+0x15c | sqlite3_config | sqlite3_config |
sqlite3Config+0x15c | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x164 | sqlite3_enable_shared_cache | openDatabase |
sqlite3Config+0x164 | sqlite3_enable_shared_cache | sqlite3_enable_shared_cache |
sqlite3Config+0x168 | sqlite3_config | sqlite3VdbeExec |
sqlite3Config+0x168 | sqlite3_config | sqlite3_config |
sqlite3Config+0x16c | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | openDatabase |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3Pragma |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_auto_extension |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_complete16 |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_malloc |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_malloc64 |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_mprintf |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_open16 |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_randomness |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_realloc |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_realloc64 |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_reset_auto_extension |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_soft_heap_limit64 |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_test_control |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_vfs_find |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_vfs_register |
sqlite3Config+0x16c | sqlite3_initialize.part.319 | sqlite3_vmprintf |
sqlite3Config+0x170 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x178 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x17c | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x18 | sqlite3_test_control | sqlite3_test_control |
sqlite3Config+0x180 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x188 | sqlite3_initialize.part.319 | sqlite3_initialize.part.319 |
sqlite3Config+0x190 | sqlite3_config | renderLogMsg |
sqlite3Config+0x190 | sqlite3_config | sqlite3_config |
sqlite3Config+0x190 | sqlite3_config | sqlite3_log |
sqlite3Config+0x198 | sqlite3_config | renderLogMsg |
sqlite3Config+0x198 | sqlite3_config | sqlite3_config |
sqlite3Config+0x1a0 | sqlite3PagerCommitPhaseOne | sqlite3_test_control |
sqlite3Config+0x1a0 | sqlite3_test_control | sqlite3_test_control |
sqlite3Config+0x1a0 | vdbeIncrMergerNew | sqlite3_test_control |
sqlite3Config+0x1a0 | vdbeMergeEngineNew | sqlite3_test_control |
sqlite3Config+0x1a0 | vdbePmaReaderSeek | sqlite3_test_control |
sqlite3Config+0x1a0 | vdbeSorterOpenTempFile | sqlite3_test_control |
sqlite3Config+0x1a8 | localtimeOffset | sqlite3_test_control |
sqlite3Config+0x1a8 | sqlite3_test_control | sqlite3_test_control |
sqlite3Config+0x1ac | sqlite3_test_control | sqlite3VdbeExec |
sqlite3Config+0x1ac | sqlite3_test_control | sqlite3_test_control |
sqlite3Config+0x1c | sqlite3_config | openDatabase |
sqlite3Config+0x1c | sqlite3_config | sqlite3_config |
sqlite3Config+0x20 | sqlite3_config | openDatabase |
sqlite3Config+0x20 | sqlite3_config | sqlite3_config |
sqlite3Config+0x24 | sqlite3_config | pager_write |
sqlite3Config+0x24 | sqlite3_config | sqlite3_config |
sqlite3Config+0x24 | subjournalPageIfRequired | sqlite3_config |
sqlite3Config+0x28 | sqlite3Malloc | sqlite3_config |
sqlite3Config+0x28 | sqlite3_config | sqlite3_config |
sqlite3Config+0x28 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x30 | sqlite3ScratchFree | sqlite3_config |
sqlite3Config+0x30 | sqlite3_config | sqlite3_config |
sqlite3Config+0x30 | sqlite3_free | sqlite3_config |
sqlite3Config+0x38 | sqlite3Realloc | sqlite3_config |
sqlite3Config+0x38 | sqlite3_config | sqlite3_config |
sqlite3Config+0x40 | pcache1Alloc | sqlite3_config |
sqlite3Config+0x40 | pcache1FetchStage2 | sqlite3_config |
sqlite3Config+0x40 | pcache1Free | sqlite3_config |
sqlite3Config+0x40 | setupLookaside.part.232 | sqlite3_config |
sqlite3Config+0x40 | sqlite3DbMallocSize | sqlite3_config |
sqlite3Config+0x40 | sqlite3HashInsert | sqlite3_config |
sqlite3Config+0x40 | sqlite3Malloc | sqlite3_config |
sqlite3Config+0x40 | sqlite3MallocSize | sqlite3_config |
sqlite3Config+0x40 | sqlite3Realloc | sqlite3_config |
sqlite3Config+0x40 | sqlite3ScratchFree | sqlite3_config |
sqlite3Config+0x40 | sqlite3ScratchMalloc | sqlite3_config |
sqlite3Config+0x40 | sqlite3_config | sqlite3_config |
sqlite3Config+0x40 | sqlite3_db_status | sqlite3_config |
sqlite3Config+0x40 | sqlite3_free | sqlite3_config |
sqlite3Config+0x40 | sqlite3_msize | sqlite3_config |
sqlite3Config+0x48 | sqlite3Malloc | sqlite3_config |
sqlite3Config+0x48 | sqlite3Realloc | sqlite3_config |
sqlite3Config+0x48 | sqlite3_config | sqlite3_config |
sqlite3Config+0x48 | sqlite3_db_status | sqlite3_config |
sqlite3Config+0x50 | sqlite3_config | sqlite3_config |
sqlite3Config+0x50 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0x58 | sqlite3_config | sqlite3_config |
sqlite3Config+0x60 | sqlite3_config | sqlite3_config |
sqlite3Config+0x60 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0xb0 | sqlite3_config | sqlite3_config |
sqlite3Config+0xb8 | sqlite3_config | sqlite3_config |
sqlite3Config+0xb8 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0xc | sqlite3_config | sqlite3ParseUri |
sqlite3Config+0xc | sqlite3_config | sqlite3_config |
sqlite3Config+0xc0 | sqlite3_config | sqlite3_config |
sqlite3Config+0xc0 | sqlite3_config | sqlite3_initialize.part.319 |
sqlite3Config+0xc8 | sqlite3_config | sqlite3_config |
sqlite3Config+0xd0 | sqlite3PcacheSetPageSize.part.26 | sqlite3_config |
sqlite3Config+0xd0 | sqlite3_config | sqlite3_config |
sqlite3Config+0xd8 | sqlite3BtreeSetCacheSize | sqlite3_config |
sqlite3Config+0xd8 | sqlite3PcacheSetPageSize.part.26 | sqlite3_config |
sqlite3Config+0xd8 | sqlite3_config | sqlite3BtreeOpen |
sqlite3Config+0xd8 | sqlite3_config | sqlite3_config |
sqlite3Config+0xe0 | sqlite3_config | getPageNormal |
sqlite3Config+0xe0 | sqlite3_config | sqlite3_config |
sqlite3Config+0xe0 | sqlite3_db_status | sqlite3_config |
sqlite3Config+0xe8 | sqlite3PagerLookup.isra.260 | sqlite3_config |
sqlite3Config+0xe8 | sqlite3PcacheTruncate | sqlite3_config |
sqlite3Config+0xe8 | sqlite3_config | getPageNormal |
sqlite3Config+0xe8 | sqlite3_config | sqlite3_config |
sqlite3Config+0xf0 | sqlite3PcacheDrop | sqlite3_config |
sqlite3Config+0xf0 | sqlite3PcacheMakeClean | sqlite3_config |
sqlite3Config+0xf0 | sqlite3PcacheRelease | sqlite3_config |
sqlite3Config+0xf0 | sqlite3_config | sqlite3_config |
sqlite3Config+0xf8 | sqlite3PcacheMove | sqlite3_config |
sqlite3Config+0xf8 | sqlite3_config | sqlite3_config |
sqlite3Hooks | getPageNormal | sqlite3_test_control |
sqlite3Hooks | pagerUnlockAndRollback | sqlite3_test_control |
sqlite3Hooks | pcache1FetchStage2 | sqlite3_test_control |
sqlite3Hooks | pcache1ResizeHash.isra.258 | sqlite3_test_control |
sqlite3Hooks | setupLookaside.part.232 | sqlite3_test_control |
sqlite3Hooks | sqlite3HashInsert | sqlite3_test_control |
sqlite3Hooks | sqlite3PagerClose | sqlite3_test_control |
sqlite3Hooks | sqlite3PagerSharedLock | sqlite3_test_control |
sqlite3Hooks | sqlite3RollbackAll | sqlite3_test_control |
sqlite3Hooks | sqlite3VdbeHalt | sqlite3_test_control |
sqlite3Hooks | sqlite3VdbeTransferError | sqlite3_test_control |
sqlite3Hooks | sqlite3WalClose | sqlite3_test_control |
sqlite3Hooks | sqlite3WalDefaultHook | sqlite3_test_control |
sqlite3Hooks | sqlite3_test_control | sqlite3_test_control |
sqlite3Hooks | walLimitSize.isra.350 | sqlite3_test_control |
sqlite3Hooks+0x8 | getPageNormal | sqlite3_test_control |
sqlite3Hooks+0x8 | pagerUnlockAndRollback | sqlite3_test_control |
sqlite3Hooks+0x8 | pcache1FetchStage2 | sqlite3_test_control |
sqlite3Hooks+0x8 | pcache1ResizeHash.isra.258 | sqlite3_test_control |
sqlite3Hooks+0x8 | setupLookaside.part.232 | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3HashInsert | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3PagerClose | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3PagerSharedLock | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3RollbackAll | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3VdbeHalt | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3VdbeTransferError | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3WalClose | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3WalDefaultHook | sqlite3_test_control |
sqlite3Hooks+0x8 | sqlite3_test_control | sqlite3_test_control |
sqlite3Hooks+0x8 | walLimitSize.isra.350 | sqlite3_test_control |
sqlite3PendingByte | allocateBtreePage | sqlite3_test_control |
sqlite3PendingByte | backupOnePage.isra.430 | sqlite3_test_control |
sqlite3PendingByte | btreeCreateTable | sqlite3_test_control |
sqlite3PendingByte | finalDbSize | sqlite3_test_control |
sqlite3PendingByte | getOverflowPage | sqlite3_test_control |
sqlite3PendingByte | getPageNormal | sqlite3_test_control |
sqlite3PendingByte | incrVacuumStep | sqlite3_test_control |
sqlite3PendingByte | pagerWriteLargeSector.isra.429 | sqlite3_test_control |
sqlite3PendingByte | pager_playback_one_page | sqlite3_test_control |
sqlite3PendingByte | posixUnlock.isra.346 | sqlite3_test_control |
sqlite3PendingByte | ptrmapGet | sqlite3_test_control |
sqlite3PendingByte | ptrmapPut | sqlite3_test_control |
sqlite3PendingByte | sqlite3BtreeCommitPhaseOne.part.461 | sqlite3_test_control |
sqlite3PendingByte | sqlite3BtreeInsert | sqlite3_test_control |
sqlite3PendingByte | sqlite3PagerCommitPhaseOne | sqlite3_test_control |
sqlite3PendingByte | sqlite3_backup_step | sqlite3_test_control |
sqlite3PendingByte | sqlite3_test_control | sqlite3VdbeExec |
sqlite3PendingByte | sqlite3_test_control | sqlite3_test_control |
sqlite3PendingByte | unixCheckReservedLock | sqlite3_test_control |
sqlite3PendingByte | unixFileLock.isra.20 | sqlite3_test_control |
sqlite3PendingByte | unixLock | sqlite3_test_control |
sqlite3Prng | sqlite3_randomness | sqlite3_randomness |
sqlite3Prng+0x1 | sqlite3_randomness | sqlite3_randomness |
sqlite3Prng+0x2 | sqlite3_randomness | sqlite3_randomness |
sqlite3SharedCacheList | sqlite3BtreeClose | sqlite3BtreeClose |
sqlite3SharedCacheList | sqlite3BtreeOpen | sqlite3BtreeClose |
sqlite3SharedCacheList | sqlite3BtreeOpen | sqlite3BtreeOpen |
sqlite3Stat | sqlite3Malloc | sqlite3Malloc |
sqlite3Stat | sqlite3Malloc | sqlite3Realloc |
sqlite3Stat | sqlite3Malloc | sqlite3ScratchFree |
sqlite3Stat | sqlite3Malloc | sqlite3_free |
sqlite3Stat | sqlite3Malloc | sqlite3_soft_heap_limit64 |
sqlite3Stat | sqlite3Realloc | sqlite3Realloc |
sqlite3Stat | sqlite3Realloc | sqlite3_soft_heap_limit64 |
sqlite3Stat | sqlite3ScratchFree | sqlite3Realloc |
sqlite3Stat | sqlite3ScratchFree | sqlite3ScratchFree |
sqlite3Stat | sqlite3ScratchFree | sqlite3_free |
sqlite3Stat | sqlite3ScratchFree | sqlite3_soft_heap_limit64 |
sqlite3Stat | sqlite3_free | sqlite3Realloc |
sqlite3Stat | sqlite3_free | sqlite3_free |
sqlite3Stat | sqlite3_free | sqlite3_soft_heap_limit64 |
sqlite3Stat | sqlite3_memory_highwater | sqlite3Malloc |
sqlite3Stat | sqlite3_memory_highwater | sqlite3Realloc |
sqlite3Stat | sqlite3_memory_highwater | sqlite3ScratchFree |
sqlite3Stat | sqlite3_memory_highwater | sqlite3_free |
sqlite3Stat | sqlite3_memory_used | sqlite3Malloc |
sqlite3Stat | sqlite3_memory_used | sqlite3Realloc |
sqlite3Stat | sqlite3_memory_used | sqlite3ScratchFree |
sqlite3Stat | sqlite3_memory_used | sqlite3_free |
sqlite3Stat+0x10 | pcache1Alloc | pcache1Alloc |
sqlite3Stat+0x10 | pcache1Alloc | pcache1Free |
sqlite3Stat+0x10 | pcache1Free | pcache1Free |
sqlite3Stat+0x18 | sqlite3ScratchMalloc | sqlite3ScratchFree |
sqlite3Stat+0x18 | sqlite3ScratchMalloc | sqlite3ScratchMalloc |
sqlite3Stat+0x20 | sqlite3ScratchFree | sqlite3ScratchFree |
sqlite3Stat+0x20 | sqlite3ScratchMalloc | sqlite3ScratchFree |
sqlite3Stat+0x20 | sqlite3ScratchMalloc | sqlite3ScratchMalloc |
sqlite3Stat+0x48 | sqlite3Malloc | sqlite3Malloc |
sqlite3Stat+0x48 | sqlite3Malloc | sqlite3ScratchFree |
sqlite3Stat+0x48 | sqlite3Malloc | sqlite3_free |
sqlite3Stat+0x50 | sqlite3Malloc | sqlite3Malloc |
sqlite3Stat+0x50 | sqlite3Malloc | sqlite3Realloc |
sqlite3Stat+0x50 | sqlite3Realloc | sqlite3Realloc |
sqlite3Stat+0x50 | sqlite3_memory_highwater | sqlite3Malloc |
sqlite3Stat+0x50 | sqlite3_memory_highwater | sqlite3Realloc |
sqlite3Stat+0x50 | sqlite3_memory_highwater | sqlite3_memory_highwater |
sqlite3Stat+0x58 | pcache1Alloc | pcache1Alloc |
sqlite3Stat+0x60 | pcache1Alloc | pcache1Alloc |
sqlite3Stat+0x68 | sqlite3ScratchMalloc | sqlite3ScratchMalloc |
sqlite3Stat+0x70 | sqlite3ScratchMalloc | sqlite3ScratchMalloc |
sqlite3Stat+0x78 | sqlite3Malloc | sqlite3Malloc |
sqlite3Stat+0x78 | sqlite3Malloc | sqlite3Realloc |
sqlite3Stat+0x78 | sqlite3Realloc | sqlite3Realloc |
sqlite3Stat+0x8 | pcache1Alloc | pcache1Alloc |
sqlite3Stat+0x8 | pcache1Alloc | pcache1Free |
sqlite3Stat+0x88 | pcache1Alloc | pcache1Alloc |
sqlite3Stat+0x90 | sqlite3ScratchMalloc | sqlite3ScratchMalloc |
sqlite3Stat+0x98 | sqlite3Malloc | sqlite3Malloc |
sqlite3_temp_directory | sqlite3Pragma | sqlite3Pragma |
sqlite3_temp_directory | unixGetTempname | sqlite3Pragma |
vfsList | sqlite3_vfs_find | sqlite3_vfs_register |
vfsList | sqlite3_vfs_register | sqlite3_vfs_register |
vfsList | vfsUnlink | sqlite3_vfs_find |
vfsList | vfsUnlink | sqlite3_vfs_register |
vfsList | vfsUnlink | vfsUnlink |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.