aboutsummaryrefslogtreecommitdiff
path: root/src/attach.c
diff options
context:
space:
mode:
authordan <dan@noemail.net>2010-02-23 11:05:26 +0000
committerdan <dan@noemail.net>2010-02-23 11:05:26 +0000
commit39547b418b5dcb64de22a39acf6a25ca4d79cacc (patch)
treecaf4e3759b1ac8d22cdac18baa232a4c75836e85 /src/attach.c
parent9978c97ec5d480741365687534690f04bc8cc6e4 (diff)
downloadsqlite-39547b418b5dcb64de22a39acf6a25ca4d79cacc.tar.gz
sqlite-39547b418b5dcb64de22a39acf6a25ca4d79cacc.zip
Fix a segfault that can occur if a malloc fails in ATTACH in shared-cache mode.
FossilOrigin-Name: e37137376a2b23062e2625b5285299b33630b326
Diffstat (limited to 'src/attach.c')
-rw-r--r--src/attach.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/attach.c b/src/attach.c
index 5b934de14..6f0acef94 100644
--- a/src/attach.c
+++ b/src/attach.c
@@ -147,8 +147,12 @@ static void attachFunc(
sqlite3BtreeSecureDelete(aNew->pBt,
sqlite3BtreeSecureDelete(db->aDb[0].pBt,-1) );
}
- aNew->zName = sqlite3DbStrDup(db, zName);
aNew->safety_level = 3;
+ aNew->zName = sqlite3DbStrDup(db, zName);
+ if( rc==SQLITE_OK && aNew->zName==0 ){
+ rc = SQLITE_NOMEM;
+ }
+
#ifdef SQLITE_HAS_CODEC
if( rc==SQLITE_OK ){