mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-12 13:01:09 +03:00
Enhance ability to debug out-of-memory errors.
FossilOrigin-Name: 6a9c4a3ebfb7cc0738ef6634440ccab44a21ff28
This commit is contained in:
@@ -1302,7 +1302,7 @@ static int findInodeInfo(
|
||||
if( pInode==0 ){
|
||||
pInode = sqlite3_malloc64( sizeof(*pInode) );
|
||||
if( pInode==0 ){
|
||||
return SQLITE_NOMEM;
|
||||
return SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
memset(pInode, 0, sizeof(*pInode));
|
||||
memcpy(&pInode->fileId, &fileId, sizeof(fileId));
|
||||
@@ -4222,7 +4222,7 @@ static int unixOpenSharedMemory(unixFile *pDbFd){
|
||||
|
||||
/* Allocate space for the new unixShm object. */
|
||||
p = sqlite3_malloc64( sizeof(*p) );
|
||||
if( p==0 ) return SQLITE_NOMEM;
|
||||
if( p==0 ) return SQLITE_NOMEM_BKPT;
|
||||
memset(p, 0, sizeof(*p));
|
||||
assert( pDbFd->pShm==0 );
|
||||
|
||||
@@ -4254,7 +4254,7 @@ static int unixOpenSharedMemory(unixFile *pDbFd){
|
||||
#endif
|
||||
pShmNode = sqlite3_malloc64( sizeof(*pShmNode) + nShmFilename );
|
||||
if( pShmNode==0 ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
goto shm_open_err;
|
||||
}
|
||||
memset(pShmNode, 0, sizeof(*pShmNode)+nShmFilename);
|
||||
@@ -4272,7 +4272,7 @@ static int unixOpenSharedMemory(unixFile *pDbFd){
|
||||
pShmNode->pInode = pDbFd->pInode;
|
||||
pShmNode->mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST);
|
||||
if( pShmNode->mutex==0 ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
goto shm_open_err;
|
||||
}
|
||||
|
||||
@@ -4445,7 +4445,7 @@ static int unixShmMap(
|
||||
pShmNode->apRegion, nReqRegion*sizeof(char *)
|
||||
);
|
||||
if( !apNew ){
|
||||
rc = SQLITE_IOERR_NOMEM;
|
||||
rc = SQLITE_IOERR_NOMEM_BKPT;
|
||||
goto shmpage_out;
|
||||
}
|
||||
pShmNode->apRegion = apNew;
|
||||
@@ -4465,7 +4465,7 @@ static int unixShmMap(
|
||||
}else{
|
||||
pMem = sqlite3_malloc64(szRegion);
|
||||
if( pMem==0 ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
goto shmpage_out;
|
||||
}
|
||||
memset(pMem, 0, szRegion);
|
||||
@@ -5243,7 +5243,7 @@ static int fillInUnixFile(
|
||||
pNew->pId = vxworksFindFileId(zFilename);
|
||||
if( pNew->pId==0 ){
|
||||
ctrlFlags |= UNIXFILE_NOLOCK;
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -5299,7 +5299,7 @@ static int fillInUnixFile(
|
||||
afpLockingContext *pCtx;
|
||||
pNew->lockingContext = pCtx = sqlite3_malloc64( sizeof(*pCtx) );
|
||||
if( pCtx==0 ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
}else{
|
||||
/* NB: zFilename exists and remains valid until the file is closed
|
||||
** according to requirement F11141. So we do not need to make a
|
||||
@@ -5329,7 +5329,7 @@ static int fillInUnixFile(
|
||||
nFilename = (int)strlen(zFilename) + 6;
|
||||
zLockFile = (char *)sqlite3_malloc64(nFilename);
|
||||
if( zLockFile==0 ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
}else{
|
||||
sqlite3_snprintf(nFilename, zLockFile, "%s" DOTLOCK_SUFFIX, zFilename);
|
||||
}
|
||||
@@ -5352,7 +5352,7 @@ static int fillInUnixFile(
|
||||
if( zSemName[n]=='/' ) zSemName[n] = '_';
|
||||
pNew->pInode->pSem = sem_open(zSemName, O_CREAT, 0666, 1);
|
||||
if( pNew->pInode->pSem == SEM_FAILED ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
pNew->pInode->aSemName[0] = '\0';
|
||||
}
|
||||
}
|
||||
@@ -5693,7 +5693,7 @@ static int unixOpen(
|
||||
}else{
|
||||
pUnused = sqlite3_malloc64(sizeof(*pUnused));
|
||||
if( !pUnused ){
|
||||
return SQLITE_NOMEM;
|
||||
return SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
}
|
||||
p->pUnused = pUnused;
|
||||
@@ -5779,7 +5779,7 @@ static int unixOpen(
|
||||
zPath = sqlite3_mprintf("%s", zName);
|
||||
if( zPath==0 ){
|
||||
robust_close(p, fd, __LINE__);
|
||||
return SQLITE_NOMEM;
|
||||
return SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
#else
|
||||
osUnlink(zName);
|
||||
@@ -6011,7 +6011,7 @@ static int unixFullPathname(
|
||||
if( bLink ){
|
||||
if( zDel==0 ){
|
||||
zDel = sqlite3_malloc(nOut);
|
||||
if( zDel==0 ) rc = SQLITE_NOMEM;
|
||||
if( zDel==0 ) rc = SQLITE_NOMEM_BKPT;
|
||||
}else if( ++nLink>SQLITE_MAX_SYMLINKS ){
|
||||
rc = SQLITE_CANTOPEN_BKPT;
|
||||
}
|
||||
@@ -6555,7 +6555,7 @@ static int proxyCreateUnixFile(
|
||||
}else{
|
||||
pUnused = sqlite3_malloc64(sizeof(*pUnused));
|
||||
if( !pUnused ){
|
||||
return SQLITE_NOMEM;
|
||||
return SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
}
|
||||
if( fd<0 ){
|
||||
@@ -6588,7 +6588,7 @@ static int proxyCreateUnixFile(
|
||||
|
||||
pNew = (unixFile *)sqlite3_malloc64(sizeof(*pNew));
|
||||
if( pNew==NULL ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
goto end_create_proxy;
|
||||
}
|
||||
memset(pNew, 0, sizeof(unixFile));
|
||||
@@ -7001,7 +7001,7 @@ static int proxyTakeConch(unixFile *pFile){
|
||||
if( tempLockPath ){
|
||||
pCtx->lockProxyPath = sqlite3DbStrDup(0, tempLockPath);
|
||||
if( !pCtx->lockProxyPath ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7066,7 +7066,7 @@ static int proxyCreateConchPathname(char *dbPath, char **pConchPath){
|
||||
** the name of the original database file. */
|
||||
*pConchPath = conchPath = (char *)sqlite3_malloc64(len + 8);
|
||||
if( conchPath==0 ){
|
||||
return SQLITE_NOMEM;
|
||||
return SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
memcpy(conchPath, dbPath, len+1);
|
||||
|
||||
@@ -7182,7 +7182,7 @@ static int proxyTransformUnixFile(unixFile *pFile, const char *path) {
|
||||
|
||||
pCtx = sqlite3_malloc64( sizeof(*pCtx) );
|
||||
if( pCtx==0 ){
|
||||
return SQLITE_NOMEM;
|
||||
return SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
memset(pCtx, 0, sizeof(*pCtx));
|
||||
|
||||
@@ -7218,7 +7218,7 @@ static int proxyTransformUnixFile(unixFile *pFile, const char *path) {
|
||||
if( rc==SQLITE_OK ){
|
||||
pCtx->dbPath = sqlite3DbStrDup(0, dbPath);
|
||||
if( pCtx->dbPath==NULL ){
|
||||
rc = SQLITE_NOMEM;
|
||||
rc = SQLITE_NOMEM_BKPT;
|
||||
}
|
||||
}
|
||||
if( rc==SQLITE_OK ){
|
||||
|
||||
Reference in New Issue
Block a user