diff options
author | dan <Dan Kennedy> | 2023-01-10 14:31:56 +0000 |
---|---|---|
committer | dan <Dan Kennedy> | 2023-01-10 14:31:56 +0000 |
commit | 2e77734b982d6b64766b51fba5113d62cd44324f (patch) | |
tree | 0fdde5ae5d5f75c0cea36e6aee38ccf509f2a977 /src/os_unix.c | |
parent | bf395ec58e00e9997fb852ec71dcd327839da4c5 (diff) | |
download | sqlite-2e77734b982d6b64766b51fba5113d62cd44324f.tar.gz sqlite-2e77734b982d6b64766b51fba5113d62cd44324f.zip |
Fix handling of unix paths that contain ".." components such that "/" is considered its own parent directory.
FossilOrigin-Name: 3c6cadb396de3981bd950eddd532daa8134bd4bf22c578620e323835c96a8500
Diffstat (limited to 'src/os_unix.c')
-rw-r--r-- | src/os_unix.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index d248703e9..c3359f1bc 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -6462,12 +6462,10 @@ static void appendOnePathElement( if( zName[0]=='.' ){ if( nName==1 ) return; if( zName[1]=='.' && nName==2 ){ - if( pPath->nUsed<=1 ){ - pPath->rc = SQLITE_ERROR; - return; + if( pPath->nUsed>1 ){ + assert( pPath->zOut[0]=='/' ); + while( pPath->zOut[--pPath->nUsed]!='/' ){} } - assert( pPath->zOut[0]=='/' ); - while( pPath->zOut[--pPath->nUsed]!='/' ){} return; } } |