diff options
author | Staron, Martin <martin.staron@mavenir.com> | 2018-02-12 12:04:46 +0100 |
---|---|---|
committer | Staron, Martin <martin.staron@mavenir.com> | 2018-02-13 08:15:39 +0100 |
commit | 3cbcb4fe85ec3233aa36b56a047470df5d4221f3 (patch) | |
tree | 7bb306f909a310101e0df20c5b015e0dd12f12c0 /src | |
parent | ccfb2dabcf5eed702ce28245ba8e7de81c1ec6bb (diff) | |
download | irssi-3cbcb4fe85ec3233aa36b56a047470df5d4221f3.zip |
dcc get shouldn't fail when file attrs can't be changed
Diffstat (limited to 'src')
-rw-r--r-- | src/irc/dcc/dcc-get.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/irc/dcc/dcc-get.c b/src/irc/dcc/dcc-get.c index cecbb076..ee8b9a49 100644 --- a/src/irc/dcc/dcc-get.c +++ b/src/irc/dcc/dcc-get.c @@ -237,8 +237,12 @@ void sig_dccget_connected(GET_DCC_REC *dcc) if (temphandle == -1) ret = -1; - else - ret = fchmod(temphandle, dcc_file_create_mode); + else { + if (fchmod(temphandle, dcc_file_create_mode) != 0) + g_warning("fchmod(3) failed: %s", strerror(errno)); + /* proceed even if chmod fails */ + ret = 0; + } close(temphandle); @@ -249,7 +253,7 @@ void sig_dccget_connected(GET_DCC_REC *dcc) /* Linux */ (errno == EPERM || /* FUSE */ - errno == ENOSYS || + errno == ENOSYS || errno == EACCES || /* BSD */ errno == EOPNOTSUPP)) { /* hard links aren't supported - some people |