1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-10-27 08:52:26 +03:00

Handle failures of getcwd() without segfaulting. Ticket #1274. (CVS 2490)

FossilOrigin-Name: c1691004d6d81b683a4ca5b1723c0de8b9b4e376
This commit is contained in:
drh
2005-06-06 15:06:39 +00:00
parent defc997230
commit 41f5852eea
5 changed files with 18 additions and 18 deletions

View File

@@ -1,5 +1,5 @@
C Fix\sa\sbug\sin\sthe\smalloc2\stests\sintroduced\sby\scheckin\s(2473).\s(CVS\s2489) C Handle\sfailures\sof\sgetcwd()\swithout\ssegfaulting.\s\sTicket\s#1274.\s(CVS\s2490)
D 2005-06-06T14:45:43 D 2005-06-06T15:06:39
F Makefile.in 8129e7f261d405db783676f9ca31e0841768c652 F Makefile.in 8129e7f261d405db783676f9ca31e0841768c652
F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7 F Makefile.linux-gcc 06be33b2a9ad4f005a5f42b22c4a19dab3cbb5c7
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -49,7 +49,7 @@ F src/os.h e5438be25cf96858787bf9b60fc7a2420e139ee3
F src/os_common.h 0e7f428ba0a6c40a61bc56c4e96f493231301b73 F src/os_common.h 0e7f428ba0a6c40a61bc56c4e96f493231301b73
F src/os_test.c 91e5f22dd89491e5e1554820e715805f43fa4ece F src/os_test.c 91e5f22dd89491e5e1554820e715805f43fa4ece
F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3 F src/os_test.h 903c93554c23d88f34f667f1979e4a1cee792af3
F src/os_unix.c cb8a39901b8eb920372c2e42f7ea9ab40f2e47ae F src/os_unix.c 443ca9d19945a08ba1e325f00e13633b3daa5bfa
F src/os_unix.h 39a393252e69e72b06715c9958df05ddbc4aa971 F src/os_unix.h 39a393252e69e72b06715c9958df05ddbc4aa971
F src/os_win.c 2bbbe6fbb010763c3fa79d5e951afca9b138c6b5 F src/os_win.c 2bbbe6fbb010763c3fa79d5e951afca9b138c6b5
F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b F src/os_win.h 41a946bea10f61c158ce8645e7646b29d44f122b
@@ -63,7 +63,7 @@ F src/random.c eff68e3f257e05e81eae6c4d50a51eb88beb4ff3
F src/select.c 071a484044efb74fb5d8f79560822cbfc7c906c3 F src/select.c 071a484044efb74fb5d8f79560822cbfc7c906c3
F src/shell.c 25b3217d7c64e6497225439d261a253a23efff26 F src/shell.c 25b3217d7c64e6497225439d261a253a23efff26
F src/sqlite.h.in f28f5b018f03a66aaf0bc1ab6985d8605d6b964f F src/sqlite.h.in f28f5b018f03a66aaf0bc1ab6985d8605d6b964f
F src/sqliteInt.h 0de60fafa8d9a15b03b4ed2cfbc2372a5b259295 F src/sqliteInt.h 0aa1d1bd6f34db3955d8615b18b20426cfd15acc
F src/table.c 25b3ff2b39b7d87e8d4a5da0713d68dfc06cbee9 F src/table.c 25b3ff2b39b7d87e8d4a5da0713d68dfc06cbee9
F src/tclsqlite.c af0f002d9d6ab4f7f32b9bee5b57665946e76ad9 F src/tclsqlite.c af0f002d9d6ab4f7f32b9bee5b57665946e76ad9
F src/test1.c ad04983979a8ee4c05d407bca8575ba1fecca0e3 F src/test1.c ad04983979a8ee4c05d407bca8575ba1fecca0e3
@@ -75,7 +75,7 @@ F src/tokenize.c d89743f2c0d05d49b5b4d6462432a1f3cc4765f1
F src/trigger.c 1a6d0c7c51b70bdc58d5068be72034071eff23ad F src/trigger.c 1a6d0c7c51b70bdc58d5068be72034071eff23ad
F src/update.c 04ea9dd784ccfeaf38a681b3edfe3b1c4edfdda7 F src/update.c 04ea9dd784ccfeaf38a681b3edfe3b1c4edfdda7
F src/utf.c bda5eb85039ef16f2d17004c1e18c96e1ab0a80c F src/utf.c bda5eb85039ef16f2d17004c1e18c96e1ab0a80c
F src/util.c ae41deda8b026e141a00938fcab8e4431578d6ea F src/util.c 96008b52604d08b9cc57ed37350149d6ac8a1bf3
F src/vacuum.c f4eb8facbfede77cac4d8c205a76a1a9b9b0d21d F src/vacuum.c f4eb8facbfede77cac4d8c205a76a1a9b9b0d21d
F src/vdbe.c 15b12cdaeb5096257143a00f466a00eed6137d2e F src/vdbe.c 15b12cdaeb5096257143a00f466a00eed6137d2e
F src/vdbe.h 75e466d84d362b0c4498978a9d6b1e6bd32ecf3b F src/vdbe.h 75e466d84d362b0c4498978a9d6b1e6bd32ecf3b
@@ -281,7 +281,7 @@ F www/tclsqlite.tcl 425be741b8ae664f55cb1ef2371aab0a75109cf9
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b
F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b F www/whentouse.tcl 528299b8316726dbcc5548e9aa0648c8b1bd055b
P 6bc372978364a1a4bfa14732a818a6bba613b1e3 P fafaa18eea1e7142e1094b5f6d544d20c9df7c0f
R c07667a46ec74b005cbbe569bfa7a722 R 5f8c1791e4ed7ae7c3960acf6aa8ba37
U drh U drh
Z d0ae35c886d8d1aee0549d8443c95180 Z 4059ba1e77ce92b7b89e85120d6f5660

View File

@@ -1 +1 @@
fafaa18eea1e7142e1094b5f6d544d20c9df7c0f c1691004d6d81b683a4ca5b1723c0de8b9b4e376

View File

@@ -1291,6 +1291,7 @@ char *sqlite3OsFullPathname(const char *zRelative){
sqlite3SetString(&zFull, zRelative, (char*)0); sqlite3SetString(&zFull, zRelative, (char*)0);
}else{ }else{
char zBuf[5000]; char zBuf[5000];
zBuf[0] = 0;
sqlite3SetString(&zFull, getcwd(zBuf, sizeof(zBuf)), "/", zRelative, sqlite3SetString(&zFull, getcwd(zBuf, sizeof(zBuf)), "/", zRelative,
(char*)0); (char*)0);
} }

View File

@@ -11,7 +11,7 @@
************************************************************************* *************************************************************************
** Internal interface definitions for SQLite. ** Internal interface definitions for SQLite.
** **
** @(#) $Id: sqliteInt.h,v 1.384 2005/05/25 10:45:10 danielk1977 Exp $ ** @(#) $Id: sqliteInt.h,v 1.385 2005/06/06 15:06:39 drh Exp $
*/ */
#ifndef _SQLITEINT_H_ #ifndef _SQLITEINT_H_
#define _SQLITEINT_H_ #define _SQLITEINT_H_
@@ -1340,7 +1340,7 @@ char *sqlite3MPrintf(const char*, ...);
char *sqlite3VMPrintf(const char*, va_list); char *sqlite3VMPrintf(const char*, va_list);
void sqlite3DebugPrintf(const char*, ...); void sqlite3DebugPrintf(const char*, ...);
void *sqlite3TextToPtr(const char*); void *sqlite3TextToPtr(const char*);
void sqlite3SetString(char **, const char *, ...); void sqlite3SetString(char **, ...);
void sqlite3ErrorMsg(Parse*, const char*, ...); void sqlite3ErrorMsg(Parse*, const char*, ...);
void sqlite3Dequote(char*); void sqlite3Dequote(char*);
int sqlite3KeywordCode(const char*, int); int sqlite3KeywordCode(const char*, int);

View File

@@ -14,7 +14,7 @@
** This file contains functions for allocating memory, comparing ** This file contains functions for allocating memory, comparing
** strings, and stuff like that. ** strings, and stuff like that.
** **
** $Id: util.c,v 1.135 2005/05/23 13:00:58 danielk1977 Exp $ ** $Id: util.c,v 1.136 2005/06/06 15:06:39 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#include <stdarg.h> #include <stdarg.h>
@@ -347,15 +347,15 @@ char *sqlite3StrNDup(const char *z, int n){
** point to that string. The 1st argument must either be NULL or ** point to that string. The 1st argument must either be NULL or
** point to memory obtained from sqliteMalloc(). ** point to memory obtained from sqliteMalloc().
*/ */
void sqlite3SetString(char **pz, const char *zFirst, ...){ void sqlite3SetString(char **pz, ...){
va_list ap; va_list ap;
int nByte; int nByte;
const char *z; const char *z;
char *zResult; char *zResult;
if( pz==0 ) return; if( pz==0 ) return;
nByte = strlen(zFirst) + 1; nByte = 1;
va_start(ap, zFirst); va_start(ap, pz);
while( (z = va_arg(ap, const char*))!=0 ){ while( (z = va_arg(ap, const char*))!=0 ){
nByte += strlen(z); nByte += strlen(z);
} }
@@ -365,9 +365,8 @@ void sqlite3SetString(char **pz, const char *zFirst, ...){
if( zResult==0 ){ if( zResult==0 ){
return; return;
} }
strcpy(zResult, zFirst); *zResult = 0;
zResult += strlen(zResult); va_start(ap, pz);
va_start(ap, zFirst);
while( (z = va_arg(ap, const char*))!=0 ){ while( (z = va_arg(ap, const char*))!=0 ){
strcpy(zResult, z); strcpy(zResult, z);
zResult += strlen(zResult); zResult += strlen(zResult);