|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
From c47224c6d911815643e4eb2c4840f2305bf14e1b Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
From: Jakub Filak <jfilak@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
Date: Fri, 12 Dec 2014 09:17:59 +0100
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
Subject: [PATCH] dump_dir: introduce dd_copy_file()
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
Related to abrt/abrt#548
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
---
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
src/include/dump_dir.h | 1 +
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
src/lib/create_dump_dir.c | 10 +---------
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
src/lib/dump_dir.c | 16 ++++++++++++++++
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
3 files changed, 18 insertions(+), 9 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
diff --git a/src/include/dump_dir.h b/src/include/dump_dir.h
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
index fbe2e31..3a5ab36 100644
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
--- a/src/include/dump_dir.h
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+++ b/src/include/dump_dir.h
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
@@ -82,6 +82,7 @@ char* dd_load_text_ext(const struct dump_dir *dd, const char *name, unsigned fla
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
char* dd_load_text(const struct dump_dir *dd, const char *name);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
void dd_save_text(struct dump_dir *dd, const char *name, const char *data);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
void dd_save_binary(struct dump_dir *dd, const char *name, const char *data, unsigned size);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+int dd_copy_file(struct dump_dir *dd, const char *name, const char *source_path);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
/* Returns value less than 0 if any error occured; otherwise returns size of an
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
* item in Bytes. If an item does not exist returns 0 instead of an error
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
* value.
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
diff --git a/src/lib/create_dump_dir.c b/src/lib/create_dump_dir.c
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
index 9f312e0..6aee370 100644
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
--- a/src/lib/create_dump_dir.c
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+++ b/src/lib/create_dump_dir.c
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
@@ -109,15 +109,7 @@ int save_problem_data_in_dump_dir(struct dump_dir *dd, problem_data_t *problem_d
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
{
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
if (value->flags & CD_FLAG_BIN)
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
{
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- char *dest = concat_path_file(dd->dd_dirname, name);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- log_info("copying '%s' to '%s'", value->content, dest);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- off_t copied = copy_file(value->content, dest, DEFAULT_DUMP_DIR_MODE | S_IROTH);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- if (copied < 0)
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- error_msg("Can't copy %s to %s", value->content, dest);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- else
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- log_info("copied %li bytes", (unsigned long)copied);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
- free(dest);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
-
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ dd_copy_file(dd, name, value->content);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
continue;
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
}
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
index 6c05916..0dea02e 100644
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
--- a/src/lib/dump_dir.c
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+++ b/src/lib/dump_dir.c
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
@@ -1298,3 +1298,19 @@ int dd_mark_as_notreportable(struct dump_dir *dd, const char *reason)
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
dd_save_text(dd, FILENAME_NOT_REPORTABLE, reason);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
return 0;
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
}
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+int dd_copy_file(struct dump_dir *dd, const char *name, const char *source_path)
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+{
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ char *dest = concat_path_file(dd->dd_dirname, name);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ log_debug("copying '%s' to '%s'", source_path, dest);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ off_t copied = copy_file(source_path, dest, DEFAULT_DUMP_DIR_MODE | S_IROTH);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ if (copied < 0)
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ error_msg("Can't copy %s to %s", source_path, dest);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ else
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ log_debug("copied %li bytes", (unsigned long)copied);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ free(dest);
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+ return copied < 0;
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
+}
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
--
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
2.1.0
|
|
![](https://seccdn.libravatar.org/avatar/cb4e34e4a99f906fe389c02ec8fabc0ec0c8fe5e163d8569a5d375560fdb5e2d?s=16&d=retro) |
3a204fb |
|