Fossil SCM
The g.fJail global variable should always be set whenever a chroot jail has been entered.
Commit
558cef7c6d40932da58273d42e50b658b8689d52e872faa2d1ea6615c0d8b150
Parent
44c5d02932d8bfd…
2 files changed
+1
-1
+1
| --- src/file.c | ||
| +++ src/file.c | ||
| @@ -493,10 +493,11 @@ | ||
| 493 | 493 | #else |
| 494 | 494 | rc = chdir(zPath); |
| 495 | 495 | if( !rc && bChroot ){ |
| 496 | 496 | rc = chroot(zPath); |
| 497 | 497 | if( !rc ) rc = chdir("/"); |
| 498 | + g.fJail = 1; | |
| 498 | 499 | } |
| 499 | 500 | #endif |
| 500 | 501 | fossil_path_free(zPath); |
| 501 | 502 | return rc; |
| 502 | 503 | } |
| 503 | 504 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -493,10 +493,11 @@ | |
| 493 | #else |
| 494 | rc = chdir(zPath); |
| 495 | if( !rc && bChroot ){ |
| 496 | rc = chroot(zPath); |
| 497 | if( !rc ) rc = chdir("/"); |
| 498 | } |
| 499 | #endif |
| 500 | fossil_path_free(zPath); |
| 501 | return rc; |
| 502 | } |
| 503 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -493,10 +493,11 @@ | |
| 493 | #else |
| 494 | rc = chdir(zPath); |
| 495 | if( !rc && bChroot ){ |
| 496 | rc = chroot(zPath); |
| 497 | if( !rc ) rc = chdir("/"); |
| 498 | g.fJail = 1; |
| 499 | } |
| 500 | #endif |
| 501 | fossil_path_free(zPath); |
| 502 | return rc; |
| 503 | } |
| 504 |
-1
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -1511,11 +1511,10 @@ | ||
| 1511 | 1511 | } |
| 1512 | 1512 | zRepo += n; |
| 1513 | 1513 | if( *zRepo == '\0' ) zRepo = "/"; |
| 1514 | 1514 | }else { |
| 1515 | 1515 | zRepo = "/"; |
| 1516 | - g.fJail = 1; | |
| 1517 | 1516 | } |
| 1518 | 1517 | if( file_chdir(zDir, 1) ){ |
| 1519 | 1518 | fossil_panic("unable to chroot into %s", zDir); |
| 1520 | 1519 | } |
| 1521 | 1520 | }else{ |
| 1522 | 1521 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -1511,11 +1511,10 @@ | |
| 1511 | } |
| 1512 | zRepo += n; |
| 1513 | if( *zRepo == '\0' ) zRepo = "/"; |
| 1514 | }else { |
| 1515 | zRepo = "/"; |
| 1516 | g.fJail = 1; |
| 1517 | } |
| 1518 | if( file_chdir(zDir, 1) ){ |
| 1519 | fossil_panic("unable to chroot into %s", zDir); |
| 1520 | } |
| 1521 | }else{ |
| 1522 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -1511,11 +1511,10 @@ | |
| 1511 | } |
| 1512 | zRepo += n; |
| 1513 | if( *zRepo == '\0' ) zRepo = "/"; |
| 1514 | }else { |
| 1515 | zRepo = "/"; |
| 1516 | } |
| 1517 | if( file_chdir(zDir, 1) ){ |
| 1518 | fossil_panic("unable to chroot into %s", zDir); |
| 1519 | } |
| 1520 | }else{ |
| 1521 |