Skip to content

Commit c1510a2

Browse files
committed
expand SQLCIPHER wrapper comments on code modified from upstream SQLite
1 parent f392d49 commit c1510a2

16 files changed

Lines changed: 84 additions & 0 deletions

src/attach.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ static void attachFunc(
198198
rc = SQLITE_NOMEM_BKPT;
199199
}
200200

201+
/* BEGIN SQLCIPHER */
201202
#ifdef SQLITE_HAS_CODEC
202203
if( rc==SQLITE_OK ){
203204
extern int sqlite3CodecAttach(sqlite3*, int, const void*, int);
@@ -232,6 +233,7 @@ static void attachFunc(
232233
}
233234
}
234235
#endif
236+
/* END SQLCIPHER */
235237
sqlite3_free_filename( zPath );
236238

237239
/* If the file was opened successfully, read the schema for the new database.

src/backup.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,13 +256,15 @@ static int backupOnePage(
256256
int nDestPgsz = sqlite3BtreeGetPageSize(p->pDest);
257257
const int nCopy = MIN(nSrcPgsz, nDestPgsz);
258258
const i64 iEnd = (i64)iSrcPg*(i64)nSrcPgsz;
259+
/* BEGIN SQLCIPHER */
259260
#ifdef SQLITE_HAS_CODEC
260261
/* Use BtreeGetReserveNoMutex() for the source b-tree, as although it is
261262
** guaranteed that the shared-mutex is held by this thread, handle
262263
** p->pSrc may not actually be the owner. */
263264
int nSrcReserve = sqlite3BtreeGetReserveNoMutex(p->pSrc);
264265
int nDestReserve = sqlite3BtreeGetRequestedReserve(p->pDest);
265266
#endif
267+
/* END SQLCIPHER */
266268
int rc = SQLITE_OK;
267269
i64 iOff;
268270

@@ -279,6 +281,7 @@ static int backupOnePage(
279281
rc = SQLITE_READONLY;
280282
}
281283

284+
/* BEGIN SQLCIPHER */
282285
#ifdef SQLITE_HAS_CODEC
283286
/* Backup is not possible if the page size of the destination is changing
284287
** and a codec is in use.
@@ -298,6 +301,7 @@ static int backupOnePage(
298301
if( rc==SQLITE_OK && newPgsz!=(u32)nSrcPgsz ) rc = SQLITE_READONLY;
299302
}
300303
#endif
304+
/* END SQLCIPHER */
301305

302306
/* This loop runs once for each destination page spanned by the source
303307
** page. For each iteration, variable iOff is set to the byte offset
@@ -794,9 +798,11 @@ int sqlite3BtreeCopyFile(Btree *pTo, Btree *pFrom){
794798
b.pDest = pTo;
795799
b.iNext = 1;
796800

801+
/* BEGIN SQLCIPHER */
797802
#ifdef SQLITE_HAS_CODEC
798803
sqlite3PagerAlignReserve(sqlite3BtreePager(pTo), sqlite3BtreePager(pFrom));
799804
#endif
805+
/* END SQLCIPHER */
800806

801807
/* 0x7FFFFFFF is the hard limit for the number of pages in a database
802808
** file. By passing this as the number of pages to copy to

src/ctime.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -358,9 +358,11 @@ static const char * const sqlite3azCompileOpt[] = {
358358
#if SQLITE_FTS5_NO_WITHOUT_ROWID
359359
"FTS5_NO_WITHOUT_ROWID",
360360
#endif
361+
/* BEGIN SQLCIPHER */
361362
#if SQLITE_HAS_CODEC
362363
"HAS_CODEC",
363364
#endif
365+
/* END SQLCIPHER */
364366
#if HAVE_ISNAN || SQLITE_HAVE_ISNAN
365367
"HAVE_ISNAN",
366368
#endif

src/global.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,13 @@ const unsigned char sqlite3CtypeMap[256] = {
140140
** enabled.
141141
*/
142142
#ifndef SQLITE_USE_URI
143+
/* BEGIN SQLCIPHER */
143144
# ifdef SQLITE_HAS_CODEC
144145
# define SQLITE_USE_URI 1
145146
# else
146147
# define SQLITE_USE_URI 0
147148
# endif
149+
/* END SQLCIPHER */
148150
#endif
149151

150152
/* EVIDENCE-OF: R-38720-18127 The default setting is determined by the

src/main.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3050,6 +3050,7 @@ static const char *uriParameter(const char *zFilename, const char *zParam){
30503050
return 0;
30513051
}
30523052

3053+
/* BEGIN SQLCIPHER */
30533054
#if defined(SQLITE_HAS_CODEC)
30543055
/*
30553056
** Process URI filename query parameters relevant to the SQLite Encryption
@@ -3085,6 +3086,7 @@ int sqlite3CodecQueryParameters(
30853086
}
30863087
}
30873088
#endif
3089+
/* END SQLCIPHER */
30883090

30893091

30903092
/*
@@ -3418,9 +3420,11 @@ static int openDatabase(
34183420
sqlite3GlobalConfig.xSqllog(pArg, db, zFilename, 0);
34193421
}
34203422
#endif
3423+
/* BEGIN SQLCIPHER */
34213424
#if defined(SQLITE_HAS_CODEC)
34223425
if( rc==SQLITE_OK ) sqlite3CodecQueryParameters(db, 0, zOpen);
34233426
#endif
3427+
/* END SQLCIPHER */
34243428
sqlite3_free_filename(zOpen);
34253429
return rc & 0xff;
34263430
}

src/pager.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,7 @@ int sqlite3PagerTrace=1; /* True to enable tracing */
409409
/*
410410
** A macro used for invoking the codec if there is one
411411
*/
412+
/* BEGIN SQLCIPHER */
412413
#ifdef SQLITE_HAS_CODEC
413414
# define CODEC1(P,D,N,X,E) \
414415
if( P->xCodec && P->xCodec(P->pCodec,D,N,X)==0 ){ E; }
@@ -419,6 +420,7 @@ int sqlite3PagerTrace=1; /* True to enable tracing */
419420
# define CODEC1(P,D,N,X,E) /* NO-OP */
420421
# define CODEC2(P,D,N,X,E,O) O=(char*)D
421422
#endif
423+
/* END SQLCIPHER */
422424

423425
/*
424426
** The maximum allowed sector size. 64KiB. If the xSectorsize() method
@@ -705,12 +707,14 @@ struct Pager {
705707
#endif
706708
void (*xReiniter)(DbPage*); /* Call this routine when reloading pages */
707709
int (*xGet)(Pager*,Pgno,DbPage**,int); /* Routine to fetch a patch */
710+
/* BEGIN SQLCIPHER */
708711
#ifdef SQLITE_HAS_CODEC
709712
void *(*xCodec)(void*,void*,Pgno,int); /* Routine for en/decoding data */
710713
void (*xCodecSizeChng)(void*,int,int); /* Notify of page size changes */
711714
void (*xCodecFree)(void*); /* Destructor for the codec */
712715
void *pCodec; /* First argument to xCodec... methods */
713716
#endif
717+
/* END SQLCIPHER */
714718
char *pTmpSpace; /* Pager.pageSize bytes of space for tmp use */
715719
PCache *pPCache; /* Pointer to page cache object */
716720
#ifndef SQLITE_OMIT_WAL
@@ -837,9 +841,11 @@ static const unsigned char aJournalMagic[] = {
837841
int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno){
838842
if( pPager->fd->pMethods==0 ) return 0;
839843
if( sqlite3PCacheIsDirty(pPager->pPCache) ) return 0;
844+
/* BEGIN SQLCIPHER */
840845
#ifdef SQLITE_HAS_CODEC
841846
if( pPager->xCodec!=0 ) return 0;
842847
#endif
848+
/* END SQLCIPHER */
843849
#ifndef SQLITE_OMIT_WAL
844850
if( pPager->pWal ){
845851
u32 iRead = 0;
@@ -1074,9 +1080,11 @@ static void setGetterMethod(Pager *pPager){
10741080
pPager->xGet = getPageError;
10751081
#if SQLITE_MAX_MMAP_SIZE>0
10761082
}else if( USEFETCH(pPager)
1083+
/* BEGIN SQLCIPHER */
10771084
#ifdef SQLITE_HAS_CODEC
10781085
&& pPager->xCodec==0
10791086
#endif
1087+
/* END SQLCIPHER */
10801088
){
10811089
pPager->xGet = getPageMMap;
10821090
#endif /* SQLITE_MAX_MMAP_SIZE>0 */
@@ -2229,6 +2237,7 @@ static u32 pager_cksum(Pager *pPager, const u8 *aData){
22292237
** Report the current page size and number of reserved bytes back
22302238
** to the codec.
22312239
*/
2240+
/* BEGIN SQLCIPHER */
22322241
#ifdef SQLITE_HAS_CODEC
22332242
static void pagerReportSize(Pager *pPager){
22342243
if( pPager->xCodecSizeChng ){
@@ -2239,7 +2248,9 @@ static void pagerReportSize(Pager *pPager){
22392248
#else
22402249
# define pagerReportSize(X) /* No-op if we do not support a codec */
22412250
#endif
2251+
/* END SQLCIPHER */
22422252

2253+
/* BEGIN SQLCIPHER */
22432254
#ifdef SQLITE_HAS_CODEC
22442255
/*
22452256
** Make sure the number of reserved bits is the same in the destination
@@ -2253,6 +2264,7 @@ void sqlite3PagerAlignReserve(Pager *pDest, Pager *pSrc){
22532264
}
22542265
}
22552266
#endif
2267+
/* END SQLCIPHER */
22562268

22572269
/*
22582270
** Read a single page from either the journal file (if isMainJrnl==1) or
@@ -2305,11 +2317,13 @@ static int pager_playback_one_page(
23052317
char *aData; /* Temporary storage for the page */
23062318
sqlite3_file *jfd; /* The file descriptor for the journal file */
23072319
int isSynced; /* True if journal page is synced */
2320+
/* BEGIN SQLCIPHER */
23082321
#ifdef SQLITE_HAS_CODEC
23092322
/* The jrnlEnc flag is true if Journal pages should be passed through
23102323
** the codec. It is false for pure in-memory journals. */
23112324
const int jrnlEnc = (isMainJrnl || pPager->subjInMemory==0);
23122325
#endif
2326+
/* END SQLCIPHER */
23132327

23142328
assert( (isMainJrnl&~1)==0 ); /* isMainJrnl is 0 or 1 */
23152329
assert( (isSavepnt&~1)==0 ); /* isSavepnt is 0 or 1 */
@@ -2440,26 +2454,30 @@ static int pager_playback_one_page(
24402454
** is if the data was just read from an in-memory sub-journal. In that
24412455
** case it must be encrypted here before it is copied into the database
24422456
** file. */
2457+
/* BEGIN SQLCIPHER */
24432458
#ifdef SQLITE_HAS_CODEC
24442459
if( !jrnlEnc ){
24452460
CODEC2(pPager, aData, pgno, 7, rc=SQLITE_NOMEM_BKPT, aData);
24462461
rc = sqlite3OsWrite(pPager->fd, (u8 *)aData, pPager->pageSize, ofst);
24472462
CODEC1(pPager, aData, pgno, 3, rc=SQLITE_NOMEM_BKPT);
24482463
}else
24492464
#endif
2465+
/* END SQLCIPHER */
24502466
rc = sqlite3OsWrite(pPager->fd, (u8 *)aData, pPager->pageSize, ofst);
24512467

24522468
if( pgno>pPager->dbFileSize ){
24532469
pPager->dbFileSize = pgno;
24542470
}
24552471
if( pPager->pBackup ){
2472+
/* BEGIN SQLCIPHER */
24562473
#ifdef SQLITE_HAS_CODEC
24572474
if( jrnlEnc ){
24582475
CODEC1(pPager, aData, pgno, 3, rc=SQLITE_NOMEM_BKPT);
24592476
sqlite3BackupUpdate(pPager->pBackup, pgno, (u8*)aData);
24602477
CODEC2(pPager, aData, pgno, 7, rc=SQLITE_NOMEM_BKPT,aData);
24612478
}else
24622479
#endif
2480+
/* END SQLCIPHER */
24632481
sqlite3BackupUpdate(pPager->pBackup, pgno, (u8*)aData);
24642482
}
24652483
}else if( !isMainJrnl && pPg==0 ){
@@ -2512,9 +2530,11 @@ static int pager_playback_one_page(
25122530
}
25132531

25142532
/* Decode the page just read from disk */
2533+
/* BEGIN SQLCIPHER */
25152534
#if SQLITE_HAS_CODEC
25162535
if( jrnlEnc ){ CODEC1(pPager, pData, pPg->pgno, 3, rc=SQLITE_NOMEM_BKPT); }
25172536
#endif
2537+
/* END SQLCIPHER */
25182538
sqlite3PcacheRelease(pPg);
25192539
}
25202540
return rc;
@@ -4219,9 +4239,11 @@ int sqlite3PagerClose(Pager *pPager, sqlite3 *db){
42194239
sqlite3PageFree(pTmp);
42204240
sqlite3PcacheClose(pPager->pPCache);
42214241

4242+
/* BEGIN SQLCIPHER */
42224243
#ifdef SQLITE_HAS_CODEC
42234244
if( pPager->xCodecFree ) pPager->xCodecFree(pPager->pCodec);
42244245
#endif
4246+
/* END SQLCIPHER */
42254247

42264248
assert( !pPager->aSavepoint && !pPager->pInJournal );
42274249
assert( !isOpen(pPager->jfd) && !isOpen(pPager->sjfd) );
@@ -4564,11 +4586,13 @@ static int subjournalPage(PgHdr *pPg){
45644586
i64 offset = (i64)pPager->nSubRec*(4+pPager->pageSize);
45654587
char *pData2;
45664588

4589+
/* BEGIN SQLCIPHER */
45674590
#if SQLITE_HAS_CODEC
45684591
if( !pPager->subjInMemory ){
45694592
CODEC2(pPager, pData, pPg->pgno, 7, return SQLITE_NOMEM_BKPT, pData2);
45704593
}else
45714594
#endif
4595+
/* END SQLCIPHER */
45724596
pData2 = pData;
45734597
PAGERTRACE(("STMT-JOURNAL %d page %d\n", PAGERID(pPager), pPg->pgno));
45744598
rc = write32bits(pPager->sjfd, offset, pPg->pgno);
@@ -5671,9 +5695,11 @@ static int getPageMMap(
56715695
);
56725696

56735697
assert( USEFETCH(pPager) );
5698+
/* BEGIN SQLCIPHER */
56745699
#ifdef SQLITE_HAS_CODEC
56755700
assert( pPager->xCodec==0 );
56765701
#endif
5702+
/* END SQLCIPHER */
56775703

56785704
/* Optimization note: Adding the "pgno<=1" term before "pgno==0" here
56795705
** allows the compiler optimizer to reuse the results of the "pgno>1"
@@ -7115,6 +7141,7 @@ const char *sqlite3PagerJournalname(Pager *pPager){
71157141
return pPager->zJournal;
71167142
}
71177143

7144+
/* BEGIN SQLCIPHER */
71187145
#ifdef SQLITE_HAS_CODEC
71197146
/*
71207147
** Set or retrieve the codec for this pager
@@ -7162,6 +7189,7 @@ int sqlite3PagerState(Pager *pPager){
71627189
return pPager->eState;
71637190
}
71647191
#endif /* SQLITE_HAS_CODEC */
7192+
/* END SQLCIPHER */
71657193

71667194
#ifndef SQLITE_OMIT_AUTOVACUUM
71677195
/*

src/pager.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,11 @@ int sqlite3PagerReadFileheader(Pager*, int, unsigned char*);
128128
/* Functions used to configure a Pager object. */
129129
void sqlite3PagerSetBusyHandler(Pager*, int(*)(void *), void *);
130130
int sqlite3PagerSetPagesize(Pager*, u32*, int);
131+
/* BEGIN SQLCIPHER */
131132
#ifdef SQLITE_HAS_CODEC
132133
void sqlite3PagerAlignReserve(Pager*,Pager*);
133134
#endif
135+
/* END SQLCIPHER */
134136
int sqlite3PagerMaxPageCount(Pager*, int);
135137
void sqlite3PagerSetCachesize(Pager*, int);
136138
int sqlite3PagerSetSpillsize(Pager*, int);
@@ -227,9 +229,11 @@ void sqlite3PagerTruncateImage(Pager*,Pgno);
227229

228230
void sqlite3PagerRekey(DbPage*, Pgno, u16);
229231

232+
/* BEGIN SQLCIPHER */
230233
#if defined(SQLITE_HAS_CODEC) && !defined(SQLITE_OMIT_WAL)
231234
void *sqlite3PagerCodec(DbPage *);
232235
#endif
236+
/* END SQLCIPHER */
233237

234238
/* Functions to support testing and debugging. */
235239
#if !defined(NDEBUG) || defined(SQLITE_TEST)

src/pragma.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2238,6 +2238,7 @@ void sqlite3Pragma(
22382238
}
22392239
#endif
22402240

2241+
/* BEGIN SQLCIPHER */
22412242
#ifdef SQLITE_HAS_CODEC
22422243
/* Pragma iArg
22432244
** ---------- ------
@@ -2279,6 +2280,7 @@ void sqlite3Pragma(
22792280
break;
22802281
}
22812282
#endif
2283+
/* END SQLCIPHER */
22822284
#if defined(SQLITE_HAS_CODEC) || defined(SQLITE_ENABLE_CEROD)
22832285
case PragTyp_ACTIVATE_EXTENSIONS: if( zRight ){
22842286
#ifdef SQLITE_HAS_CODEC

0 commit comments

Comments
 (0)