Discussion:
[LIBREPORT PATCH] add checks for existing dumpdir items - closes #164
Petr Kubat
2013-09-04 08:15:13 UTC
Permalink
also seems to fix some trailing spaces I left in the code

Signed-off-by: Petr Kubat <pkubat-H+wXaHxf7aLQT0dZR+***@public.gmane.org>
---
src/lib/dump_dir.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c
index 4bb23ba..04718b5 100644
--- a/src/lib/dump_dir.c
+++ b/src/lib/dump_dir.c
@@ -638,9 +638,15 @@ void dd_create_basic_files(struct dump_dir *dd, uid_t uid, const char *chroot_di

struct utsname buf;
uname(&buf); /* never fails */
- dd_save_text(dd, FILENAME_KERNEL, buf.release);
- dd_save_text(dd, FILENAME_ARCHITECTURE, buf.machine);
- dd_save_text(dd, FILENAME_HOSTNAME, buf.nodename);
+ /* Check if files already exist in dumpdir as they might have
+ * more relevant information about the problem
+ */
+ if (!dd_exist(dd, FILENAME_KERNEL))
+ dd_save_text(dd, FILENAME_KERNEL, buf.release);
+ if (!dd_exist(dd, FILENAME_ARCHITECTURE))
+ dd_save_text(dd, FILENAME_ARCHITECTURE, buf.machine);
+ if (!dd_exist(dd, FILENAME_HOSTNAME))
+ dd_save_text(dd, FILENAME_HOSTNAME, buf.nodename);

char *release = load_text_file("/etc/os-release",
DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE | DD_OPEN_FOLLOW);
@@ -837,7 +843,7 @@ int dd_delete(struct dump_dir *dd)
error_msg("unlocked problem directory %s cannot be deleted", dd->dd_dirname);
return -1;
}
-
+
int r = delete_file_dir(dd->dd_dirname, /*skip_lock_file:*/ true);
dd->locked = 0; /* delete_file_dir already removed .lock */
dd_close(dd);
@@ -1246,7 +1252,7 @@ int dd_rename(struct dump_dir *dd, const char *new_path)
error_msg("unlocked problem directory %s cannot be renamed", dd->dd_dirname);
return -1;
}
-
+
int res = rename(dd->dd_dirname, new_path);
if (res == 0)
{
--
1.8.3.1
Jakub Filak
2013-09-11 08:53:03 UTC
Permalink
Pushed. Thanks!

Loading...