Fossil

Check-in [4d445ead]
Login

Check-in [4d445ead]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix the fossil_stat() routine (broken by check-in [39a5df1fde741d08]) so that it responds correctly when the second argument is SymFILE. This is a fix for the problem described in Forum post 251ffc0584
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 4d445ead4cdca1ff553f92bf4eb10cea6fa003207ec500ae6eadd8b9cc1f0e38
User & Date: drh 2020-10-10 00:01:33
References
2023-11-16
21:27
The symlinks tests are all concerned with files accessed through symlink traversal which has not been allowed for quite a while (I think [4d445ead] is the last change that enforced this).

The test changes now check the reverse condition: traversing symlinks should not work.

To carry out the tests, ensure allow-symlinks is set in the local repo. ... (check-in: d30cd073 user: preben tags: test-fixes-2.24)

Context
2020-10-10
12:05
Renamed fossil.page.wikiedit-wysiwyg-legacy.js to fossil.wikiedit-wysiwyg.js so that the excessively long name doesn't cause /dir to have, at most, 2 columns. Removed some dead code and added a tiny bit of docs. Updated changelog per forum request. ... (check-in: a759842a user: stephan tags: trunk)
00:01
Fix the fossil_stat() routine (broken by check-in [39a5df1fde741d08]) so that it responds correctly when the second argument is SymFILE. This is a fix for the problem described in Forum post 251ffc0584 ... (check-in: 4d445ead user: drh tags: trunk)
2020-10-09
21:09
Replace the two GIF images in the www/concepts.wiki document with Pikchrs. ... (check-in: bd9bf248 user: drh tags: trunk)
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/file.c.

131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
  const char *zFilename,  /* name of file or directory to inspect. */
  struct fossilStat *buf, /* pointer to buffer where info should go. */
  int eFType              /* Look at symlink itself if RepoFILE and enabled. */
){
  int rc;
  void *zMbcs = fossil_utf8_to_path(zFilename, 0);
#if !defined(_WIN32)
  if( (eFType=RepoFILE && db_allow_symlinks())
   || eFType==SymFILE ){
    /* Symlinks look like files whose content is the name of the target */
    rc = lstat(zMbcs, buf);
  }else{
    /* Symlinks look like the object to which they point */
    rc = stat(zMbcs, buf);
  }







|







131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
  const char *zFilename,  /* name of file or directory to inspect. */
  struct fossilStat *buf, /* pointer to buffer where info should go. */
  int eFType              /* Look at symlink itself if RepoFILE and enabled. */
){
  int rc;
  void *zMbcs = fossil_utf8_to_path(zFilename, 0);
#if !defined(_WIN32)
  if( (eFType==RepoFILE && db_allow_symlinks())
   || eFType==SymFILE ){
    /* Symlinks look like files whose content is the name of the target */
    rc = lstat(zMbcs, buf);
  }else{
    /* Symlinks look like the object to which they point */
    rc = stat(zMbcs, buf);
  }