mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-09 14:21:03 +03:00
Add asserts to make sure that database connection locks are held when
accessing the lookaside memory allocation buffers. No defects were found. (CVS 6374) FossilOrigin-Name: 8a9f3e66069146ad1b1bc2686567882dc87603a9
This commit is contained in:
14
manifest
14
manifest
@@ -1,5 +1,5 @@
|
|||||||
C Fix\san\sobscure\srace\scondition\sthat\scan\soccur\swhen\smultiple\sthreads,\sshared\scache\sand\sDDL\sstatements\sare\scombined.\sEnhance\snotify2.test\sto\stest\sthis\sscenario.\s(CVS\s6373)
|
C Add\sasserts\sto\smake\ssure\sthat\sdatabase\sconnection\slocks\sare\sheld\swhen\naccessing\sthe\slookaside\smemory\sallocation\sbuffers.\s\sNo\sdefects\swere\sfound.\s(CVS\s6374)
|
||||||
D 2009-03-23T17:11:27
|
D 2009-03-23T17:49:15
|
||||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||||
F Makefile.in 583e87706abc3026960ed759aff6371faf84c211
|
F Makefile.in 583e87706abc3026960ed759aff6371faf84c211
|
||||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||||
@@ -123,7 +123,7 @@ F src/journal.c e00df0c0da8413ab6e1bb7d7cab5665d4a9000d0
|
|||||||
F src/legacy.c 2ad5b52df322d0f132f66817095e0e79c8942611
|
F src/legacy.c 2ad5b52df322d0f132f66817095e0e79c8942611
|
||||||
F src/loadext.c 3f96631089fc4f3871a67f02f2e4fc7ea4d51edc
|
F src/loadext.c 3f96631089fc4f3871a67f02f2e4fc7ea4d51edc
|
||||||
F src/main.c 95e13cd23b7a88e33c1acfe233c748fd9dd7e467
|
F src/main.c 95e13cd23b7a88e33c1acfe233c748fd9dd7e467
|
||||||
F src/malloc.c 1a52c55bc06e5645543c90bdbeb43d26b2a97314
|
F src/malloc.c 1d862da7eb382d4b79b55436b04278fedec288e7
|
||||||
F src/mem0.c f2f84062d1f35814d6535c9f9e33de3bfb3b132c
|
F src/mem0.c f2f84062d1f35814d6535c9f9e33de3bfb3b132c
|
||||||
F src/mem1.c e6d5c23941288df8191b8a98c28e3f57771e2270
|
F src/mem1.c e6d5c23941288df8191b8a98c28e3f57771e2270
|
||||||
F src/mem2.c d02bd6a5b34f2d59012a852615621939d9c09548
|
F src/mem2.c d02bd6a5b34f2d59012a852615621939d9c09548
|
||||||
@@ -709,7 +709,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
|
|||||||
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||||
P db1d4d2f5083adf5438c7f387b115180800e7bd9
|
P 92ec5975123284aff3a69ee16c397d9e2a844c0b
|
||||||
R 7eb80d4e0dc8a8ee68d4260f71752688
|
R b9d42817e8a95625684d85979bf11516
|
||||||
U danielk1977
|
U drh
|
||||||
Z f6209142c4d9c04d943d837539d0d12b
|
Z dc2ad38653436885495b13fa9182c804
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
92ec5975123284aff3a69ee16c397d9e2a844c0b
|
8a9f3e66069146ad1b1bc2686567882dc87603a9
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
**
|
**
|
||||||
** Memory allocation functions used throughout sqlite.
|
** Memory allocation functions used throughout sqlite.
|
||||||
**
|
**
|
||||||
** $Id: malloc.c,v 1.59 2009/03/23 04:33:33 danielk1977 Exp $
|
** $Id: malloc.c,v 1.60 2009/03/23 17:49:15 drh Exp $
|
||||||
*/
|
*/
|
||||||
#include "sqliteInt.h"
|
#include "sqliteInt.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
@@ -426,6 +426,7 @@ int sqlite3MallocSize(void *p){
|
|||||||
return sqlite3GlobalConfig.m.xSize(p);
|
return sqlite3GlobalConfig.m.xSize(p);
|
||||||
}
|
}
|
||||||
int sqlite3DbMallocSize(sqlite3 *db, void *p){
|
int sqlite3DbMallocSize(sqlite3 *db, void *p){
|
||||||
|
assert( db==0 || sqlite3_mutex_held(db->mutex) );
|
||||||
if( p==0 ){
|
if( p==0 ){
|
||||||
return 0;
|
return 0;
|
||||||
}else if( isLookaside(db, p) ){
|
}else if( isLookaside(db, p) ){
|
||||||
@@ -455,6 +456,7 @@ void sqlite3_free(void *p){
|
|||||||
** connection.
|
** connection.
|
||||||
*/
|
*/
|
||||||
void sqlite3DbFree(sqlite3 *db, void *p){
|
void sqlite3DbFree(sqlite3 *db, void *p){
|
||||||
|
assert( db==0 || sqlite3_mutex_held(db->mutex) );
|
||||||
if( isLookaside(db, p) ){
|
if( isLookaside(db, p) ){
|
||||||
LookasideSlot *pBuf = (LookasideSlot*)p;
|
LookasideSlot *pBuf = (LookasideSlot*)p;
|
||||||
pBuf->pNext = db->lookaside.pFree;
|
pBuf->pNext = db->lookaside.pFree;
|
||||||
@@ -566,6 +568,7 @@ void *sqlite3DbMallocRaw(sqlite3 *db, int n){
|
|||||||
#ifndef SQLITE_OMIT_LOOKASIDE
|
#ifndef SQLITE_OMIT_LOOKASIDE
|
||||||
if( db ){
|
if( db ){
|
||||||
LookasideSlot *pBuf;
|
LookasideSlot *pBuf;
|
||||||
|
assert( sqlite3_mutex_held(db->mutex) );
|
||||||
if( db->mallocFailed ){
|
if( db->mallocFailed ){
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -597,6 +600,7 @@ void *sqlite3DbMallocRaw(sqlite3 *db, int n){
|
|||||||
*/
|
*/
|
||||||
void *sqlite3DbRealloc(sqlite3 *db, void *p, int n){
|
void *sqlite3DbRealloc(sqlite3 *db, void *p, int n){
|
||||||
void *pNew = 0;
|
void *pNew = 0;
|
||||||
|
assert( sqlite3_mutex_held(db->mutex) );
|
||||||
if( db->mallocFailed==0 ){
|
if( db->mallocFailed==0 ){
|
||||||
if( p==0 ){
|
if( p==0 ){
|
||||||
return sqlite3DbMallocRaw(db, n);
|
return sqlite3DbMallocRaw(db, n);
|
||||||
|
|||||||
Reference in New Issue
Block a user