Fossil SCM
Check on writability of the home directory appears too restricted. Writability of the $HOME/.fossil file should be sufficient for fossil to operate.
Commit
1e90d43d764fcf33ffc4be0408144ee7c3457452
Parent
1eb9496c48507ab…
1 file changed
+3
-5
M
src/db.c
+3
-5
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -826,15 +826,10 @@ | ||
| 826 | 826 | } |
| 827 | 827 | #endif |
| 828 | 828 | if( file_isdir(zHome)!=1 ){ |
| 829 | 829 | fossil_fatal("invalid home directory: %s", zHome); |
| 830 | 830 | } |
| 831 | -#if !defined(_WIN32) | |
| 832 | - if( file_access(zHome, W_OK) ){ | |
| 833 | - fossil_fatal("home directory %s must be writeable", zHome); | |
| 834 | - } | |
| 835 | -#endif | |
| 836 | 831 | g.zHome = mprintf("%/", zHome); |
| 837 | 832 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 838 | 833 | /* . filenames give some window systems problems and many apps problems */ |
| 839 | 834 | zDbName = mprintf("%//_fossil", zHome); |
| 840 | 835 | #else |
| @@ -841,10 +836,13 @@ | ||
| 841 | 836 | zDbName = mprintf("%s/.fossil", zHome); |
| 842 | 837 | #endif |
| 843 | 838 | if( file_size(zDbName)<1024*3 ){ |
| 844 | 839 | db_init_database(zDbName, zConfigSchema, (char*)0); |
| 845 | 840 | } |
| 841 | + if( file_access(zDbName, W_OK) ){ | |
| 842 | + fossil_fatal("configuration file %s must be writeable", zDbName); | |
| 843 | + } | |
| 846 | 844 | if( useAttach ){ |
| 847 | 845 | db_open_or_attach(zDbName, "configdb", &g.useAttach); |
| 848 | 846 | g.dbConfig = 0; |
| 849 | 847 | g.zConfigDbType = 0; |
| 850 | 848 | }else{ |
| 851 | 849 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -826,15 +826,10 @@ | |
| 826 | } |
| 827 | #endif |
| 828 | if( file_isdir(zHome)!=1 ){ |
| 829 | fossil_fatal("invalid home directory: %s", zHome); |
| 830 | } |
| 831 | #if !defined(_WIN32) |
| 832 | if( file_access(zHome, W_OK) ){ |
| 833 | fossil_fatal("home directory %s must be writeable", zHome); |
| 834 | } |
| 835 | #endif |
| 836 | g.zHome = mprintf("%/", zHome); |
| 837 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 838 | /* . filenames give some window systems problems and many apps problems */ |
| 839 | zDbName = mprintf("%//_fossil", zHome); |
| 840 | #else |
| @@ -841,10 +836,13 @@ | |
| 841 | zDbName = mprintf("%s/.fossil", zHome); |
| 842 | #endif |
| 843 | if( file_size(zDbName)<1024*3 ){ |
| 844 | db_init_database(zDbName, zConfigSchema, (char*)0); |
| 845 | } |
| 846 | if( useAttach ){ |
| 847 | db_open_or_attach(zDbName, "configdb", &g.useAttach); |
| 848 | g.dbConfig = 0; |
| 849 | g.zConfigDbType = 0; |
| 850 | }else{ |
| 851 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -826,15 +826,10 @@ | |
| 826 | } |
| 827 | #endif |
| 828 | if( file_isdir(zHome)!=1 ){ |
| 829 | fossil_fatal("invalid home directory: %s", zHome); |
| 830 | } |
| 831 | g.zHome = mprintf("%/", zHome); |
| 832 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 833 | /* . filenames give some window systems problems and many apps problems */ |
| 834 | zDbName = mprintf("%//_fossil", zHome); |
| 835 | #else |
| @@ -841,10 +836,13 @@ | |
| 836 | zDbName = mprintf("%s/.fossil", zHome); |
| 837 | #endif |
| 838 | if( file_size(zDbName)<1024*3 ){ |
| 839 | db_init_database(zDbName, zConfigSchema, (char*)0); |
| 840 | } |
| 841 | if( file_access(zDbName, W_OK) ){ |
| 842 | fossil_fatal("configuration file %s must be writeable", zDbName); |
| 843 | } |
| 844 | if( useAttach ){ |
| 845 | db_open_or_attach(zDbName, "configdb", &g.useAttach); |
| 846 | g.dbConfig = 0; |
| 847 | g.zConfigDbType = 0; |
| 848 | }else{ |
| 849 |