summaryrefslogtreecommitdiffstats
path: root/src/daemon/MiddleWare.cpp
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2011-03-24 20:59:31 +0100
committerJiri Moskovcak <jmoskovc@redhat.com>2011-03-24 20:59:31 +0100
commit38d14ec4d7ec62ff29fa5636d3462c3ae297e917 (patch)
tree87b4972c7304be3be4454003774b1020c224b3e5 /src/daemon/MiddleWare.cpp
parent14e071507d45f1c1668ddf569b0f285e21ea36b3 (diff)
downloadabrt-38d14ec4d7ec62ff29fa5636d3462c3ae297e917.tar.gz
abrt-38d14ec4d7ec62ff29fa5636d3462c3ae297e917.tar.xz
abrt-38d14ec4d7ec62ff29fa5636d3462c3ae297e917.zip
extend dump_dir to allow creating world-readable directory
- so far used only by kerneloops
Diffstat (limited to 'src/daemon/MiddleWare.cpp')
-rw-r--r--src/daemon/MiddleWare.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/daemon/MiddleWare.cpp b/src/daemon/MiddleWare.cpp
index 77e18b0a..9bbd2af3 100644
--- a/src/daemon/MiddleWare.cpp
+++ b/src/daemon/MiddleWare.cpp
@@ -768,15 +768,21 @@ int DeleteDebugDump(const char *dump_dir_name, long caller_uid)
char caller_uid_str[sizeof(long) * 3 + 2];
sprintf(caller_uid_str, "%ld", caller_uid);
- char *uid = dd_load_text(dd, FILENAME_UID);
- if (strcmp(uid, caller_uid_str) != 0)
+ char *uid = dd_load_text_ext(dd, FILENAME_UID, DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE);
+ /* we assume that the dump_dir can be handled by everyone if uid == NULL
+ * e.g: kerneloops
+ */
+ if (uid != NULL)
{
- char *inform_all = dd_load_text_ext(dd, FILENAME_INFORMALL, DD_FAIL_QUIETLY_ENOENT);
- if (!string_to_bool(inform_all))
+ if (strcmp(uid, caller_uid_str) != 0)
{
- dd_close(dd);
- error_msg("Dump directory '%s' can't be accessed by user with uid %ld", dump_dir_name, caller_uid);
- return 1;
+ char *inform_all = dd_load_text_ext(dd, FILENAME_INFORMALL, DD_FAIL_QUIETLY_ENOENT);
+ if (!string_to_bool(inform_all))
+ {
+ dd_close(dd);
+ error_msg("Dump directory '%s' can't be accessed by user with uid %ld", dump_dir_name, caller_uid);
+ return 1;
+ }
}
}
}