Skip to content

Commit 80722b0

Browse files
committed
Remove compile option SQLITE3MC_USE_RANDOM_FILL_MEMORY
Using random data to fill unallocated memory just incurs additional overhead without increasing security.
1 parent 26c5c5b commit 80722b0

File tree

6 files changed

+0
-58
lines changed

6 files changed

+0
-58
lines changed

CMakeLists.txt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ OPTION(SQLITE3MC_USE_SQLCIPHER_LEGACY "Use sqlcipher legacy mode as default" OFF
6464

6565
# Additional memory security (filling freed memory allocations with zeros or random data)
6666
OPTION(SQLITE3MC_SECURE_MEMORY "Enable pragma to secure freed memory" OFF)
67-
OPTION(SQLITE3MC_USE_RANDOM_FILL_MEMORY "Fill freed memory with random data" OFF)
6867

6968
# Omit AES hardware support
7069
OPTION(SQLITE3MC_OMIT_AES_HARDWARE_SUPPORT "Omit AES hardware support" OFF)
@@ -163,12 +162,6 @@ if(SQLITE3MC_SECURE_MEMORY)
163162
SQLITE3MC_SECURE_MEMORY=1
164163
)
165164
endif()
166-
if(SQLITE3MC_USE_RANDOM_FILL_MEMORY)
167-
set(SQLITE3MC_BASE_DEFINITIONS
168-
${SQLITE3MC_BASE_DEFINITIONS}
169-
SQLITE3MC_USE_RANDOM_FILL_MEMORY=1
170-
)
171-
endif()
172165

173166
if(SQLITE3MC_USE_MINIZ OR _SQLITE3MC_REQUIRE_ZLIB)
174167
if(_SQLITE3MC_REQUIRE_ZLIB)

build/config.gcc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,4 @@ SQLITE3MC_USE_MINIZ ?= 0
2727
# Set to 1 to enable the PRAGMA
2828
SQLITE3MC_SECURE_MEMORY ?= 0
2929

30-
# Optionally fill freed memory with random data instead of zeros (Default: 0)
31-
#SQLITE3MC_USE_RANDOM_FILL_MEMORY ?= 0
32-
3330
### Configuration dependent settings

build/wx_setup.props

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55
<SQLITE_ENABLE_DEBUG>0</SQLITE_ENABLE_DEBUG>
66
<SQLITE3MC_USE_MINIZ>1</SQLITE3MC_USE_MINIZ>
77
<SQLITE3MC_SECURE_MEMORY>0</SQLITE3MC_SECURE_MEMORY>
8-
<!--
9-
<SQLITE3MC_USE_RANDOM_FILL_MEMORY>0</SQLITE3MC_USE_RANDOM_FILL_MEMORY>
10-
-->
118
</PropertyGroup>
129
<ItemDefinitionGroup>
1310
<Link>

premake5.lua

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ project "sqlite3mc_lib"
9292
-- "SQLITE_ENABLE_SQLAR=1"
9393
-- "SQLITE_ENABLE_ZIPFILE=1"
9494
"SQLITE3MC_SECURE_MEMORY=$(SQLITE3MC_SECURE_MEMORY)",
95-
-- "SQLITE3MC_USE_RANDOM_FILL_MEMORY=$(SQLITE3MC_USE_RANDOM_FILL_MEMORY)",
9695
"SQLITE_TEMP_STORE=2",
9796
"SQLITE_USE_URI=1",
9897
"SQLITE_USER_AUTHENTICATION=0",
@@ -190,7 +189,6 @@ project "sqlite3mc_dll"
190189
-- "SQLITE_ENABLE_SQLAR=1"
191190
-- "SQLITE_ENABLE_ZIPFILE=1"
192191
"SQLITE3MC_SECURE_MEMORY=$(SQLITE3MC_SECURE_MEMORY)",
193-
-- "SQLITE3MC_USE_RANDOM_FILL_MEMORY=$(SQLITE3MC_USE_RANDOM_FILL_MEMORY)",
194192
"SQLITE_TEMP_STORE=2",
195193
"SQLITE_USE_URI=1",
196194
"SQLITE_USER_AUTHENTICATION=0"
@@ -342,7 +340,6 @@ project "sqlite3mc_libicu"
342340
-- "SQLITE_ENABLE_SQLAR=1"
343341
-- "SQLITE_ENABLE_ZIPFILE=1"
344342
"SQLITE3MC_SECURE_MEMORY=$(SQLITE3MC_SECURE_MEMORY)",
345-
-- "SQLITE3MC_USE_RANDOM_FILL_MEMORY=$(SQLITE3MC_USE_RANDOM_FILL_MEMORY)",
346343
"SQLITE_TEMP_STORE=2",
347344
"SQLITE_USE_URI=1",
348345
"SQLITE_USER_AUTHENTICATION=0",
@@ -453,7 +450,6 @@ project "sqlite3mc_dllicu"
453450
-- "SQLITE_ENABLE_SQLAR=1"
454451
-- "SQLITE_ENABLE_ZIPFILE=1"
455452
"SQLITE3MC_SECURE_MEMORY=$(SQLITE3MC_SECURE_MEMORY)",
456-
-- "SQLITE3MC_USE_RANDOM_FILL_MEMORY=$(SQLITE3MC_USE_RANDOM_FILL_MEMORY)",
457453
"SQLITE_TEMP_STORE=2",
458454
"SQLITE_USE_URI=1",
459455
"SQLITE_USER_AUTHENTICATION=0"

src/memory_secure.c

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -44,38 +44,6 @@ static volatile int mcSecureMemoryFlag = 0;
4444
/* Map of default memory allocation methods */
4545
static volatile sqlite3_mem_methods mcDefaultMemoryMethods;
4646

47-
#if SQLITE3MC_ENABLE_RANDOM_FILL_MEMORY
48-
49-
/*
50-
** Fill a buffer with pseudo-random bytes. This is used to preset
51-
** the content of a new memory allocation to unpredictable values and
52-
** to clear the content of a freed allocation to unpredictable values.
53-
*/
54-
static void mcRandomFill(char* pBuf, int nByte)
55-
{
56-
unsigned int x, y, r;
57-
x = SQLITE_PTR_TO_INT(pBuf);
58-
y = nByte | 1;
59-
while( nByte >= 4 )
60-
{
61-
x = (x>>1) ^ (-(int)(x&1) & 0xd0000001);
62-
y = y*1103515245 + 12345;
63-
r = x ^ y;
64-
*(int*)pBuf = r;
65-
pBuf += 4;
66-
nByte -= 4;
67-
}
68-
while( nByte-- > 0 )
69-
{
70-
x = (x>>1) ^ (-(int)(x&1) & 0xd0000001);
71-
y = y*1103515245 + 12345;
72-
r = x ^ y;
73-
*(pBuf++) = r & 0xff;
74-
}
75-
}
76-
77-
#endif
78-
7947
/*
8048
** Return the size of an allocation
8149
*/
@@ -99,13 +67,8 @@ static void mcMemoryFree(void* pPrior)
9967
{
10068
if (mcSecureMemoryFlag)
10169
{
102-
#if SQLITE3MC_USE_RANDOM_FILL_MEMORY
103-
int nSize = mcMemorySize(pPrior);
104-
mcRandomFill((char*) pPrior, nSize)
105-
#else
10670
int nSize = mcMemorySize(pPrior);
10771
sqlite3mcSecureZeroMemory(pPrior, 0, nSize);
108-
#endif
10972
}
11073
mcDefaultMemoryMethods.xFree(pPrior);
11174
}

src/sqlite3mc.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,6 @@ sqlite3mcVersion(sqlite3_context* context, int argc, sqlite3_value** argv)
160160
SQLITE_PRIVATE void sqlite3mcSetMemorySecurity(int value);
161161
SQLITE_PRIVATE int sqlite3mcGetMemorySecurity();
162162

163-
#ifndef SQLITE3MC_USE_RANDOM_FILL_MEMORY
164-
#define SQLITE3MC_USE_RANDOM_FILL_MEMORY 0
165-
#endif
166-
167163
/* Memory locking is currently not supported */
168164
#ifdef SQLITE3MC_ENABLE_MEMLOCK
169165
#undef SQLITE3MC_ENABLE_MEMLOCK

0 commit comments

Comments
 (0)