summaryrefslogtreecommitdiffstats
path: root/src/hooks
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2011-02-22 12:44:35 +0100
committerNikola Pajkovsky <npajkovs@redhat.com>2011-02-23 11:00:14 +0100
commit31eccab52d1637b3cecb95f03cb007231420b65d (patch)
tree68b8ac930b980f490ba2e2f2def90558a3624286 /src/hooks
parentec1a06ab4ffb869d0b19d57faf91dbfe42f834ca (diff)
downloadabrt-31eccab52d1637b3cecb95f03cb007231420b65d.tar.gz
abrt-31eccab52d1637b3cecb95f03cb007231420b65d.tar.xz
abrt-31eccab52d1637b3cecb95f03cb007231420b65d.zip
fix owner, group and access permissions for /proc/<pid>/[maps,smaps] file
Before owner and group were root:root with 000 permission. Now it is abrt:<owner> and permissions is set to 640 Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
Diffstat (limited to 'src/hooks')
-rw-r--r--src/hooks/abrt-hook-ccpp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
index 6014f099..ea618cf9 100644
--- a/src/hooks/abrt-hook-ccpp.c
+++ b/src/hooks/abrt-hook-ccpp.c
@@ -503,10 +503,12 @@ int main(int argc, char** argv)
int base_name = sprintf(source_filename, "/proc/%lu/smaps", (long)pid);
base_name -= strlen("smaps");
char *dest_filename = concat_path_file(dd->dd_dir, FILENAME_SMAPS);
- copy_file(source_filename, dest_filename, 0);
+ copy_file(source_filename, dest_filename, S_IRUSR | S_IRGRP | S_IWUSR);
+ chown(dest_filename, dd->dd_uid, dd->dd_gid);
strcpy(source_filename + base_name, "maps");
strcpy(strrchr(dest_filename, '/') + 1, FILENAME_MAPS);
- copy_file(source_filename, dest_filename, 0);
+ copy_file(source_filename, dest_filename, S_IRUSR | S_IRGRP | S_IWUSR);
+ chown(dest_filename, dd->dd_uid, dd->dd_gid);
free(dest_filename);
char *cmdline = get_cmdline(pid); /* never NULL */