]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Handle failures of getcwd() without segfaulting. Ticket #1274. (CVS 2491)
authordrh <drh@noemail.net>
Mon, 6 Jun 2005 15:07:02 +0000 (15:07 +0000)
committerdrh <drh@noemail.net>
Mon, 6 Jun 2005 15:07:02 +0000 (15:07 +0000)
FossilOrigin-Name: c1bd0a150c2c734b1ef991361f4eb41feb2ec578

manifest
manifest.uuid
src/os.c
src/sqliteInt.h
src/util.c

index df8b50e98b17f02f9aea8019a5b5e9eadaaad05b..3a8f540685502414bd097da9092018c84099b57b 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C The\s".dump"\smethod\sin\sthe\sshell\sfor\sversion\s2\sshould\snot\ssort\stables\sby\nname\sbecause\sthis\scan\sput\sviews\sout\sof\sdependency\sorder.\s\s\sTicket\s#1124.\s(CVS\s2347)
-D 2005-02-16T03:53:11
+C Handle\sfailures\sof\sgetcwd()\swithout\ssegfaulting.\s\sTicket\s#1274.\s(CVS\s2491)
+D 2005-06-06T15:07:03
 F Makefile.in ab7b0d5118e2da97bac66be8684a1034e3500f5a
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -38,7 +38,7 @@ F src/hash.h 3247573ab95b9dd90bcca0307a75d9a16da1ccc7
 F src/insert.c c0485ee2d1b99322894e2d1e0b576fd05ed75616
 F src/main.c 7802ab78b2f2e66750be2192b2c1334c99bc10a5
 F src/md5.c fe4f9c9c6f71dfc26af8da63e4d04489b1430565
-F src/os.c 989942fc5d209128d1f371f29447914ec98006ef
+F src/os.c 617db07b13113ec093786b2278767ab46217d140
 F src/os.h 250a3789be609adfee5c5aa20137ce8683276f24
 F src/pager.c b246986e5ba31b15aa3cf91d3b9ec2e608aceb8e
 F src/pager.h 82332878799280145639a48d88cdb4058925e3f6
@@ -49,7 +49,7 @@ F src/random.c 775913e0b7fbd6295d21f12a7bd35b46387c44b2
 F src/select.c a1c18cab14b49f28ed7629a53fe02adeb13083d2
 F src/shell.c 46a1757c152bba687f647b571693bfa223d3354d
 F src/sqlite.h.in b1414cc6686c77917024d8196efa4531e76cf194
-F src/sqliteInt.h 3e9203f16d12baf3a364fae9d64903d813651abd
+F src/sqliteInt.h 311de2338da566e996ea3f4846d489e3856be7a3
 F src/table.c eea34544be947e4939ba9e46391d5da998f90b84
 F src/tclsqlite.c 2daaaa41378fbaf167905363197e1d44464b6eb6
 F src/test1.c 4ae20bc125b1a7d7824cccca55d538d81f0b4949
@@ -59,7 +59,7 @@ F src/test4.c 6e3e31acfaf21d66420fc35fda5b17dc0000cc8d
 F src/tokenize.c 6676b946fd8825b67ab52140af4fdc57a70bda48
 F src/trigger.c a9927b57c865b6f3df3fb5e40c9824d722660ded
 F src/update.c bd391079138e67d09c9af34528ca4137c29242d1
-F src/util.c 48f1e99803e924433477a7ccbdab35663acb621d
+F src/util.c c2de22342aae2cc954d3c88ef40a2ece7cee6905
 F src/vacuum.c 12de02a8dec2b3f8d30ea496b66a0f989322a2c4
 F src/vdbe.c f78a26f5bbd647fac84c26e0a54b85361613a004
 F src/vdbe.h ac987945e4dd6f987bca534c6005899f089fc270
@@ -191,7 +191,7 @@ F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 F www/tclsqlite.tcl b9271d44dcf147a93c98f8ecf28c927307abd6da
 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
 F www/whentouse.tcl a8335bce47cc2fddb07f19052cb0cb4d9129a8e4
-P 74684507a0a2bda67b6cfa899ccabf99da515899
-R 75958564507d78fd3b2f7cf5f11b5638
+P b82c06fdd143fde6678003a0f3fc66e10c21a65b
+R 128473a62b22c8a2cfc6d615fe53b280
 U drh
-Z e5cfbc8013b3ec6e8beae1c96b8bf821
+Z e17f99ad55fbdd9c4262ff68b1f001b5
index be00d3f53fc503de6770c26c743e746a8c62976d..09dd3b0bd6c313116d0be427c3cf40607d5081df 100644 (file)
@@ -1 +1 @@
-b82c06fdd143fde6678003a0f3fc66e10c21a65b
\ No newline at end of file
+c1bd0a150c2c734b1ef991361f4eb41feb2ec578
\ No newline at end of file
index 930d62440e7cccc776932d7cc5e00fc7cb2d07aa..dccd65f1d6642e3957440c80f36ebc2e2b4336e2 100644 (file)
--- a/src/os.c
+++ b/src/os.c
@@ -1778,6 +1778,7 @@ char *sqliteOsFullPathname(const char *zRelative){
     sqliteSetString(&zFull, zRelative, (char*)0);
   }else{
     char zBuf[5000];
+    zBuf[0] = 0;
     sqliteSetString(&zFull, getcwd(zBuf, sizeof(zBuf)), "/", zRelative,
                     (char*)0);
   }
index c8c7e9c962f14e0a0f3ca87ea7571d61ffc6cc6c..04158e91be78fba26aba75e98cbd21863fb1c96f 100644 (file)
@@ -11,7 +11,7 @@
 *************************************************************************
 ** Internal interface definitions for SQLite.
 **
-** @(#) $Id: sqliteInt.h,v 1.220.2.1 2004/07/15 13:37:05 drh Exp $
+** @(#) $Id: sqliteInt.h,v 1.220.2.2 2005/06/06 15:07:03 drh Exp $
 */
 #include "config.h"
 #include "sqlite.h"
@@ -1120,7 +1120,7 @@ void sqliteRealToSortable(double r, char *);
 #endif
 char *sqliteMPrintf(const char*, ...);
 char *sqliteVMPrintf(const char*, va_list);
-void sqliteSetString(char **, const char *, ...);
+void sqliteSetString(char **, ...);
 void sqliteSetNString(char **, ...);
 void sqliteErrorMsg(Parse*, const char*, ...);
 void sqliteDequote(char*);
index 53809c69e23cd3dc0b2b91c7100d86a06ed021b3..d8ce7072d0881dd1665774f50b4875c48c3f2921 100644 (file)
@@ -14,7 +14,7 @@
 ** This file contains functions for allocating memory, comparing
 ** strings, and stuff like that.
 **
-** $Id: util.c,v 1.74.2.1 2004/07/15 13:08:41 drh Exp $
+** $Id: util.c,v 1.74.2.2 2005/06/06 15:07:03 drh Exp $
 */
 #include "sqliteInt.h"
 #include <stdarg.h>
@@ -330,15 +330,15 @@ char *sqliteStrNDup(const char *z, int n){
 ** point to that string.  The 1st argument must either be NULL or 
 ** point to memory obtained from sqliteMalloc().
 */
-void sqliteSetString(char **pz, const char *zFirst, ...){
+void sqliteSetString(char **pz, ...){
   va_list ap;
   int nByte;
   const char *z;
   char *zResult;
 
   if( pz==0 ) return;
-  nByte = strlen(zFirst) + 1;
-  va_start(ap, zFirst);
+  nByte = 1;
+  va_start(ap, pz);
   while( (z = va_arg(ap, const char*))!=0 ){
     nByte += strlen(z);
   }
@@ -348,9 +348,8 @@ void sqliteSetString(char **pz, const char *zFirst, ...){
   if( zResult==0 ){
     return;
   }
-  strcpy(zResult, zFirst);
-  zResult += strlen(zResult);
-  va_start(ap, zFirst);
+  *zResult = 0;
+  va_start(ap, pz);
   while( (z = va_arg(ap, const char*))!=0 ){
     strcpy(zResult, z);
     zResult += strlen(zResult);