diff options
author | David Goulet <dgoulet@torproject.org> | 2021-01-28 12:46:24 -0500 |
---|---|---|
committer | David Goulet <dgoulet@torproject.org> | 2021-01-28 12:46:24 -0500 |
commit | 9556276f07e62e8b2e6a496e9b2a918293367839 (patch) | |
tree | 7975fcdb2fa954722dc1628224f957bfed092a1c /src/lib | |
parent | 290007e3c48624060620b0340c1b4874487aab09 (diff) | |
parent | 623af0155e0664f46adb1fcc218bc193a9d15916 (diff) | |
download | tor-9556276f07e62e8b2e6a496e9b2a918293367839.tar.gz tor-9556276f07e62e8b2e6a496e9b2a918293367839.zip |
Merge branch 'tor-gitlab/mr/50' into maint-0.3.5
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/fs/files.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/fs/files.c b/src/lib/fs/files.c index b98a51a287..ec7dbca0e9 100644 --- a/src/lib/fs/files.c +++ b/src/lib/fs/files.c @@ -607,6 +607,9 @@ read_file_to_str_until_eof(int fd, size_t max_bytes_to_read, size_t *sz_out) * If <b>flags</b> & RFTS_BIN, open the file in binary mode. * If <b>flags</b> & RFTS_IGNORE_MISSING, don't warn if the file * doesn't exist. + * + * Unless the RFTS_BIN flag is set in <b>flags</b>, this function will strip + * any CR characters in the return value on all platforms. */ /* * This function <em>may</em> return an erroneous result if the file @@ -685,7 +688,6 @@ read_file_to_str, (const char *filename, int flags, struct stat *stat_out)) } string[r] = '\0'; /* NUL-terminate the result. */ -#if defined(_WIN32) || defined(__CYGWIN__) if (!bin && strchr(string, '\r')) { log_debug(LD_FS, "We didn't convert CRLF to LF as well as we hoped " "when reading %s. Coping.", @@ -695,8 +697,7 @@ read_file_to_str, (const char *filename, int flags, struct stat *stat_out)) } if (!bin) { statbuf.st_size = (size_t) r; - } else -#endif /* defined(_WIN32) || defined(__CYGWIN__) */ + } else { if (r != statbuf.st_size) { /* Unless we're using text mode on win32, we'd better have an exact * match for size. */ @@ -708,6 +709,7 @@ read_file_to_str, (const char *filename, int flags, struct stat *stat_out)) errno = save_errno; return NULL; } + } close(fd); if (stat_out) { memcpy(stat_out, &statbuf, sizeof(struct stat)); |