Fossil SCM

When chroot()'ing for root user, close the repo _before_ the chroot, not after. Problem reported via ML.

stephan 2013-09-29 12:42 trunk
Commit e65162b4ad664ae3782598c65ead286fd6acbaf0
1 file changed +4 -4
+4 -4
--- src/main.c
+++ src/main.c
@@ -1149,10 +1149,13 @@
11491149
if( getuid()==0 ){
11501150
int i;
11511151
struct stat sStat;
11521152
Blob dir;
11531153
char *zDir;
1154
+ if( g.db!=0 ){
1155
+ db_close(1);
1156
+ }
11541157
11551158
file_canonical_name(zRepo, &dir, 0);
11561159
zDir = blob_str(&dir);
11571160
if( file_isdir(zDir)==1 ){
11581161
if( file_chdir(zDir, 1) ){
@@ -1177,14 +1180,11 @@
11771180
i = setgid(sStat.st_gid);
11781181
i = i || setuid(sStat.st_uid);
11791182
if(i){
11801183
fossil_fatal("setgid/uid() failed with errno %d", errno);
11811184
}
1182
- if( g.db!=0 ){
1183
- db_close(1);
1184
- db_open_repository(zRepo);
1185
- }
1185
+ db_open_repository(zRepo);
11861186
}
11871187
#endif
11881188
return zRepo;
11891189
}
11901190
11911191
--- src/main.c
+++ src/main.c
@@ -1149,10 +1149,13 @@
1149 if( getuid()==0 ){
1150 int i;
1151 struct stat sStat;
1152 Blob dir;
1153 char *zDir;
 
 
 
1154
1155 file_canonical_name(zRepo, &dir, 0);
1156 zDir = blob_str(&dir);
1157 if( file_isdir(zDir)==1 ){
1158 if( file_chdir(zDir, 1) ){
@@ -1177,14 +1180,11 @@
1177 i = setgid(sStat.st_gid);
1178 i = i || setuid(sStat.st_uid);
1179 if(i){
1180 fossil_fatal("setgid/uid() failed with errno %d", errno);
1181 }
1182 if( g.db!=0 ){
1183 db_close(1);
1184 db_open_repository(zRepo);
1185 }
1186 }
1187 #endif
1188 return zRepo;
1189 }
1190
1191
--- src/main.c
+++ src/main.c
@@ -1149,10 +1149,13 @@
1149 if( getuid()==0 ){
1150 int i;
1151 struct stat sStat;
1152 Blob dir;
1153 char *zDir;
1154 if( g.db!=0 ){
1155 db_close(1);
1156 }
1157
1158 file_canonical_name(zRepo, &dir, 0);
1159 zDir = blob_str(&dir);
1160 if( file_isdir(zDir)==1 ){
1161 if( file_chdir(zDir, 1) ){
@@ -1177,14 +1180,11 @@
1180 i = setgid(sStat.st_gid);
1181 i = i || setuid(sStat.st_uid);
1182 if(i){
1183 fossil_fatal("setgid/uid() failed with errno %d", errno);
1184 }
1185 db_open_repository(zRepo);
 
 
 
1186 }
1187 #endif
1188 return zRepo;
1189 }
1190
1191

Keyboard Shortcuts

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