diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-11 07:20:57 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-11 07:20:57 +0100 |
| commit | c2009ddeb7052dfe443f0239893f627759580c29 (patch) | |
| tree | 41a2c5309ff941f45aa0dfbf826e2f92fa59d9c3 | |
| parent | 1d038a9cf5e154406710800c372631f5c7c3fd81 (diff) | |
SOSreport/TicketUploader: use more restrictive file modes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| -rw-r--r-- | inc/abrtlib.h | 2 | ||||
| -rw-r--r-- | lib/Plugins/SOSreport.cpp | 3 | ||||
| -rw-r--r-- | lib/Plugins/TicketUploader.cpp | 2 | ||||
| -rw-r--r-- | lib/Utils/copyfd.cpp | 4 |
4 files changed, 6 insertions, 5 deletions
diff --git a/inc/abrtlib.h b/inc/abrtlib.h index fadd7f1..8cb32d3 100644 --- a/inc/abrtlib.h +++ b/inc/abrtlib.h @@ -157,7 +157,7 @@ void xunlink(const char *pathname); off_t copyfd_eof(int src_fd, int dst_fd); off_t copyfd_size(int src_fd, int dst_fd, off_t size); void copyfd_exact_size(int src_fd, int dst_fd, off_t size); -off_t copy_file(const char *src_name, const char *dst_name); +off_t copy_file(const char *src_name, const char *dst_name, int mode); void xsetreuid(uid_t ruid, uid_t euid); diff --git a/lib/Plugins/SOSreport.cpp b/lib/Plugins/SOSreport.cpp index 899b446..2576910 100644 --- a/lib/Plugins/SOSreport.cpp +++ b/lib/Plugins/SOSreport.cpp @@ -103,8 +103,9 @@ void CActionSOSreport::Run(const char *pActionDir, const char *pArgs) dd.Open(pActionDir); //Not useful //dd.SaveText("sosreportoutput", output); - if (copy_file(sosreport_filename.c_str(), sosreport_dd_filename.c_str()) < 0) + if (copy_file(sosreport_filename.c_str(), sosreport_dd_filename.c_str(), 0644) < 0) { + dd.Close(); throw CABRTException(EXCEP_PLUGIN, "Can't copy '%s' to '%s'", sosreport_filename.c_str(), diff --git a/lib/Plugins/TicketUploader.cpp b/lib/Plugins/TicketUploader.cpp index a4fe0e8..de19791 100644 --- a/lib/Plugins/TicketUploader.cpp +++ b/lib/Plugins/TicketUploader.cpp @@ -221,7 +221,7 @@ string CTicketUploader::Report(const map_crash_report_t& pCrashReport, else if (it->second[CD_TYPE] == CD_BIN) { string ofile_name = concat_path_file(tmptar_name.c_str(), it->first.c_str()); - if (copy_file(it->second[CD_CONTENT].c_str(), ofile_name.c_str()) < 0) + if (copy_file(it->second[CD_CONTENT].c_str(), ofile_name.c_str(), 0644) < 0) { throw CABRTException(EXCEP_PLUGIN, "Can't copy '%s' to '%s'", diff --git a/lib/Utils/copyfd.cpp b/lib/Utils/copyfd.cpp index 9abe752..fdc568a 100644 --- a/lib/Utils/copyfd.cpp +++ b/lib/Utils/copyfd.cpp @@ -106,7 +106,7 @@ off_t copyfd_eof(int fd1, int fd2) return full_fd_action(fd1, fd2, 0); } -off_t copy_file(const char *src_name, const char *dst_name) +off_t copy_file(const char *src_name, const char *dst_name, int mode) { off_t r; int src = open(src_name, O_RDONLY); @@ -115,7 +115,7 @@ off_t copy_file(const char *src_name, const char *dst_name) perror_msg("Can't open '%s'", src_name); return -1; } - int dst = open(dst_name, O_WRONLY | O_TRUNC | O_CREAT, 0666); + int dst = open(dst_name, O_WRONLY | O_TRUNC | O_CREAT, mode); if (dst < 0) { close(src); |
