diff options
Diffstat (limited to 'subversion/libsvn_subr/io.c')
-rw-r--r-- | subversion/libsvn_subr/io.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/subversion/libsvn_subr/io.c b/subversion/libsvn_subr/io.c index 385ae37dbe80..f0956e2aa8e9 100644 --- a/subversion/libsvn_subr/io.c +++ b/subversion/libsvn_subr/io.c @@ -1533,14 +1533,9 @@ io_set_file_perms(const char *path, { if (enable_write) /* Make read-write. */ { - apr_file_t *fd; - - /* Get the perms for the original file so we'll have any other bits - * that were already set (like the execute bits, for example). */ - SVN_ERR(svn_io_file_open(&fd, path, APR_READ, - APR_OS_DEFAULT, pool)); - SVN_ERR(merge_default_file_perms(fd, &perms_to_set, pool)); - SVN_ERR(svn_io_file_close(fd, pool)); + /* Tweak the owner bits only. The group/other bits aren't safe to + * touch because we may end up setting them in undesired ways. */ + perms_to_set |= (APR_UREAD|APR_UWRITE); } else { @@ -4289,7 +4284,7 @@ contents_three_identical_p(svn_boolean_t *identical_p12, /* As long as a file is not at the end yet, and it is still * potentially identical to another file, we read the next chunk.*/ - if (!eof1 && (identical_p12 || identical_p13)) + if (!eof1 && (*identical_p12 || *identical_p13)) { err = svn_io_file_read_full2(file1_h, buf1, SVN__STREAM_CHUNK_SIZE, &bytes_read1, @@ -4299,7 +4294,7 @@ contents_three_identical_p(svn_boolean_t *identical_p12, read_1 = TRUE; } - if (!eof2 && (identical_p12 || identical_p23)) + if (!eof2 && (*identical_p12 || *identical_p23)) { err = svn_io_file_read_full2(file2_h, buf2, SVN__STREAM_CHUNK_SIZE, &bytes_read2, @@ -4309,7 +4304,7 @@ contents_three_identical_p(svn_boolean_t *identical_p12, read_2 = TRUE; } - if (!eof3 && (identical_p13 || identical_p23)) + if (!eof3 && (*identical_p13 || *identical_p23)) { err = svn_io_file_read_full2(file3_h, buf3, SVN__STREAM_CHUNK_SIZE, &bytes_read3, |