From d7e7ab7b5ff68e9771db364b03bbec3d682e4fbf Mon Sep 17 00:00:00 2001 From: drh <> Date: Thu, 20 Nov 2025 02:03:57 +0000 Subject: [PATCH] Additional checks for OOM conditions. FossilOrigin-Name: 8fafd4988bf1fa1aa799c2834dd31bebdd52e7ae8e68c0197ccb497eb9b1e5f6 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/alter.c | 5 +++++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index 5225c6f32a..a26e7d89c6 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Mark\san\sunreachable\sbranch\swith\sNEVER(). -D 2025-11-20T00:56:28.994 +C Additional\schecks\sfor\sOOM\sconditions. +D 2025-11-20T02:03:57.963 F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea @@ -666,7 +666,7 @@ F mptest/multiwrite01.test dab5c5f8f9534971efce679152c5146da265222d F sqlite.pc.in 42b7bf0d02e08b9e77734a47798d1a55a9e0716b F sqlite3.1 1b9c24374a85dfc7eb8fa7c4266ee0db4f9609cceecfc5481cd8307e5af04366 F sqlite3.pc.in e6dee284fba59ef500092fdc1843df3be8433323a3733c91da96690a50a5b398 -F src/alter.c 607ad2410e686d77cd1c899ad9fd626b4ad01ac36e55b7c3ca7abdad67e0d5c5 +F src/alter.c d7151775cf5d32d0eef917f5058791c571417fd2852f4ad4e7a29748098c6503 F src/analyze.c 03bcfc083fc0cccaa9ded93604e1d4244ea245c17285d463ef6a60425fcb247d F src/attach.c 9af61b63b10ee702b1594ecd24fb8cea0839cfdb6addee52fba26fa879f5db9d F src/auth.c 54ab9c6c5803b47c0d45b76ce27eff22a03b4b1f767c5945a3a4eb13aa4c78dc @@ -2177,8 +2177,8 @@ F tool/version-info.c 33d0390ef484b3b1cb685d59362be891ea162123cea181cb8e6d2cf6dd F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee87c1b31a7 F tool/warnings.sh d924598cf2f55a4ecbc2aeb055c10bd5f48114793e7ba25f9585435da29e7e98 F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 4fd5dfa215f14b20ddfc55904acbcc9bc9fd2123bb06fff72ef76efa17304566 -R 3b2daa38d62c3252645cd817d8e6a2a3 +P df2259a32fd65986eafceb2c551e6e1661927f1f5b18dbb97c59d9627279eea0 +R f7bd098503221c71a258f97d8f310236 U drh -Z cc535ab38365d06b32d133d1a194d52d +Z 20fc64fb6a35782adf034c6413836124 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index cb0629e928..12091d76e6 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -df2259a32fd65986eafceb2c551e6e1661927f1f5b18dbb97c59d9627279eea0 +8fafd4988bf1fa1aa799c2834dd31bebdd52e7ae8e68c0197ccb497eb9b1e5f6 diff --git a/src/alter.c b/src/alter.c index 197119656e..6a81decd5c 100644 --- a/src/alter.c +++ b/src/alter.c @@ -2477,6 +2477,8 @@ static int quotedCompare( static int skipCreateTable(sqlite3_context *ctx, const u8 *zSql, int *piOff){ int iOff = 0; + if( zSql==0 ) return SQLITE_ERROR; + /* Jump past the "CREATE TABLE" bit. */ while( 1 ){ int t = 0; @@ -2519,6 +2521,8 @@ static void dropConstraintFunc( int t = 0; UNUSED_PARAMETER(NotUsed); + if( zSql==0 ) return; + /* Jump past the "CREATE TABLE" bit. */ if( skipCreateTable(ctx, zSql, &iOff) ) return; @@ -2942,6 +2946,7 @@ static void findConstraintFunc( zSql = sqlite3_value_text(argv[0]); zCons = sqlite3_value_text(argv[1]); + if( zSql==0 || zCons==0 ) return; while( t!=TK_LP && t!=TK_ILLEGAL ){ iOff += sqlite3GetToken(&zSql[iOff], &t); } -- 2.47.3