Fossil SCM

Improved detection of invalid home directories and better error messages when invalid home directories are detected. Ticket [c3971eac71a1bd0]

drh 2010-04-22 12:44 trunk
Commit 822133a7638132cb7c4e2aad3055a67959525d96
1 file changed +12 -4
+12 -4
--- src/db.c
+++ src/db.c
@@ -656,18 +656,26 @@
656656
if( zHome==0 ){
657657
zHome = getenv("HOMEPATH");
658658
}
659659
}
660660
if( zHome==0 ){
661
- db_err("cannot locate home directory - "
662
- "please set the HOMEPATH environment variable");
661
+ fossil_fatal("cannot locate home directory - "
662
+ "please set the HOMEPATH environment variable");
663663
}
664664
#else
665665
zHome = getenv("HOME");
666666
if( zHome==0 ){
667
- db_err("cannot locate home directory - "
668
- "please set the HOME environment variable");
667
+ fossil_fatal("cannot locate home directory - "
668
+ "please set the HOME environment variable");
669
+ }
670
+#endif
671
+ if( file_isdir(zHome)!=1 ){
672
+ fossil_fatal("invalid home directory: %s", zHome);
673
+ }
674
+#ifndef __MINGW32__
675
+ if( access(zHome, W_OK) ){
676
+ fossil_fatal("home directory %s must be writeable", zHome);
669677
}
670678
#endif
671679
g.zHome = mprintf("%/", zHome);
672680
#ifdef __MINGW32__
673681
/* . filenames give some window systems problems and many apps problems */
674682
--- src/db.c
+++ src/db.c
@@ -656,18 +656,26 @@
656 if( zHome==0 ){
657 zHome = getenv("HOMEPATH");
658 }
659 }
660 if( zHome==0 ){
661 db_err("cannot locate home directory - "
662 "please set the HOMEPATH environment variable");
663 }
664 #else
665 zHome = getenv("HOME");
666 if( zHome==0 ){
667 db_err("cannot locate home directory - "
668 "please set the HOME environment variable");
 
 
 
 
 
 
 
 
669 }
670 #endif
671 g.zHome = mprintf("%/", zHome);
672 #ifdef __MINGW32__
673 /* . filenames give some window systems problems and many apps problems */
674
--- src/db.c
+++ src/db.c
@@ -656,18 +656,26 @@
656 if( zHome==0 ){
657 zHome = getenv("HOMEPATH");
658 }
659 }
660 if( zHome==0 ){
661 fossil_fatal("cannot locate home directory - "
662 "please set the HOMEPATH environment variable");
663 }
664 #else
665 zHome = getenv("HOME");
666 if( zHome==0 ){
667 fossil_fatal("cannot locate home directory - "
668 "please set the HOME environment variable");
669 }
670 #endif
671 if( file_isdir(zHome)!=1 ){
672 fossil_fatal("invalid home directory: %s", zHome);
673 }
674 #ifndef __MINGW32__
675 if( access(zHome, W_OK) ){
676 fossil_fatal("home directory %s must be writeable", zHome);
677 }
678 #endif
679 g.zHome = mprintf("%/", zHome);
680 #ifdef __MINGW32__
681 /* . filenames give some window systems problems and many apps problems */
682

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button