Avoid a small memory leak that might occurs if SQLite is compiled using

-DOS_VXWORKS=1 and a call to sem_open() in the unix-namedsem VFS fails.

FossilOrigin-Name: f0a3729e3835cf27f8ffc0b40239ec722eb0f97543ae3a6026ec2e64baf6cb54
This commit is contained in:
drh committed 2026-10-25 19:29:06 +00:00
1 parent e5672e209e
commit 5a7949b088
3 files changed
+12 -9

No files matched your search

+6 -6
View File
@@ -1,5 +1,5 @@
C Better\sdetection\sof\sdatabase\scorruption\sin\sthe\sclearCellOverflow()\sroutine.
D 2026-10-25T18:43:18.700
C Avoid\sa\ssmall\smemory\sleak\sthat\smight\soccurs\sif\sSQLite\sis\scompiled\susing\n-DOS_VXWORKS=1\sand\sa\scall\sto\ssem_open()\sin\sthe\sunix-namedsem\sVFS\sfails.
D 2026-10-25T19:29:06.958
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -787,7 +787,7 @@ F src/os.h 1ff5ae51d339d0e30d8a9d814f4b8f8e448169304d83a7ed9db66a65732f3e63
F src/os_common.h 6c0eb8dd40ef3e12fe585a13e709710267a258e2c8dd1c40b1948a1d14582e06
F src/os_kv.c 713336d0c646720a9ccbd5bc6fe217bb4924dd28adea25d83a2af5346cb030e6
F src/os_setup.h 8efc64eda6a6c2f221387eefc2e7e45fd5a3d5c8337a7a83519ba4fbd2957ae2
F src/os_unix.c 9fe91ce15623500735af951761118901162cb0cebec71858c783c3143fc314f1
F src/os_unix.c 85932e9894a551844995e9d3a8129e2eb69b6b5c246105d8c99f723f0ad1cbf9
F src/os_win.c 74473c76517956865581f12e4afc06c09a499ea70002cf9cedb3316301138be8
F src/os_win.h c06ccc3a090cf54202ea58981c298817f3309d4c9e4d52ad0a02927346493721
F src/pager.c fd9ca8fe01b09c490e66a440e2f56648d489ccb9e0e3b5508424079b046fc824
@@ -2289,8 +2289,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P c6e22bceae0e2ba57c739d6349f07da2bb27e115131e4d867163e5a8958a78c9
R 8ec2bd580ddf422bb67eaddfb495b92a
P b6c072240dfe4f5d075b1b505c98281f830579f48ff939cdb6e054bfb179efa3
R ad451766cce36370dc0570b481eee5d6
U drh
Z bbf8f8707301168645c361f3de229dbc
Z 41ac887cc9dd2b6265d4b8957a4e447b
# Remove this line to create a well-formed Fossil manifest.
+1 -1
View File
@@ -1 +1 @@
b6c072240dfe4f5d075b1b505c98281f830579f48ff939cdb6e054bfb179efa3
f0a3729e3835cf27f8ffc0b40239ec722eb0f97543ae3a6026ec2e64baf6cb54
+5 -2
View File
@@ -6215,12 +6215,15 @@ static int fillInUnixFile(
int n;
sqlite3_snprintf(MAX_PATHNAME, zSemName, "/%s.sem",
pNew->pId->zCanonicalName);
for( n=1; zSemName[n]; n++ )
if( zSemName[n]=='/' ) zSemName[n] = '_';
for(n=1; zSemName[n]; n++){
if( zSemName[n]=='/' && !sqlite3FaultSim(801) ) zSemName[n] = '_';
}
pNew->pInode->pSem = sem_open(zSemName, O_CREAT, 0666, 1);
if( pNew->pInode->pSem == SEM_FAILED ){
rc = SQLITE_NOMEM_BKPT;
pNew->pInode->aSemName[0] = '\0';
releaseInodeInfo(pNew);
pNew->pInode = 0;
}
}
unixLeaveMutex();