diff options
author | drh <> | 2021-12-16 17:35:27 +0000 |
---|---|---|
committer | drh <> | 2021-12-16 17:35:27 +0000 |
commit | 621a5e0c478677b938a992ee88a847a9281306fd (patch) | |
tree | 15ab772ae4f0c604063c9be038aaf3783d6bdbeb /ext/misc/fileio.c | |
parent | aca5e49caad9819cc09c26cd4a5ecf6e02a1e02e (diff) | |
download | sqlite-621a5e0c478677b938a992ee88a847a9281306fd.tar.gz sqlite-621a5e0c478677b938a992ee88a847a9281306fd.zip |
New defenses against OOM and corrupt database problems in the CLI.
FossilOrigin-Name: 5c9fd7fde16d8e335488b8bf5c691961d2636201b034d1f29d25de8708de291d
Diffstat (limited to 'ext/misc/fileio.c')
-rw-r--r-- | ext/misc/fileio.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/misc/fileio.c b/ext/misc/fileio.c index c9988f607..7cdbd5968 100644 --- a/ext/misc/fileio.c +++ b/ext/misc/fileio.c @@ -368,10 +368,11 @@ static int writeFile( mode_t mode, /* MODE parameter passed to writefile() */ sqlite3_int64 mtime /* MTIME parameter (or -1 to not set time) */ ){ + if( zFile==0 ) return 1; #if !defined(_WIN32) && !defined(WIN32) if( S_ISLNK(mode) ){ const char *zTo = (const char*)sqlite3_value_text(pData); - if( symlink(zTo, zFile)<0 ) return 1; + if( zTo==0 || symlink(zTo, zFile)<0 ) return 1; }else #endif { |