# HG changeset patch # User Elliott Sales de Andrade # Date 1261547448 0 # Node ID 32f356585aed320811f2110bc05e5b843a563c83 # Parent 811c12e6d9655b89d301f74fb635d8820393aca2 Check file permissions before sending a file transfer request. Closes #1944. diff -r 811c12e6d965 -r 32f356585aed libpurple/ft.c --- a/libpurple/ft.c Wed Dec 23 05:15:17 2009 +0000 +++ b/libpurple/ft.c Wed Dec 23 05:50:48 2009 +0000 @@ -328,6 +328,23 @@ g_free(msg); purple_xfer_request_denied(xfer); } + else if (type == PURPLE_XFER_SEND) { +#ifndef _WIN32 + int mode = R_OK; +#else + int mode = F_OK; +#endif + + if (g_access(filename, mode) == 0) { + purple_xfer_request_accepted(xfer, filename); + } else { + purple_xfer_ref(xfer); + purple_notify_message( + NULL, PURPLE_NOTIFY_MSG_ERROR, NULL, + _("File is not readable."), NULL, + (PurpleNotifyCloseCallback)purple_xfer_choose_file, xfer); + } + } else { purple_xfer_request_accepted(xfer, filename); }