summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2009-11-13 11:28:17 +0100
committerKarel Klic <kklic@redhat.com>2009-11-13 11:28:17 +0100
commit61cf6a4bca76c5efaf9994ccf1b1640bc5d7de74 (patch)
tree9ca5046ab2ddd2f6fa16c8397c9afc58e3faf555 /src
parenteb97977cc4d049887144d67d00e32d84bebecb99 (diff)
parent5d308d79beef7e6590855577b0b3e01d672f7580 (diff)
downloadabrt-61cf6a4bca76c5efaf9994ccf1b1640bc5d7de74.tar.gz
abrt-61cf6a4bca76c5efaf9994ccf1b1640bc5d7de74.tar.xz
abrt-61cf6a4bca76c5efaf9994ccf1b1640bc5d7de74.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src')
-rw-r--r--src/CLI/CLI.cpp1
-rw-r--r--src/CLI/Makefile.am12
-rw-r--r--src/Hooks/CCpp.cpp22
3 files changed, 14 insertions, 21 deletions
diff --git a/src/CLI/CLI.cpp b/src/CLI/CLI.cpp
index edc8df0..149e936 100644
--- a/src/CLI/CLI.cpp
+++ b/src/CLI/CLI.cpp
@@ -17,7 +17,6 @@
*/
#include <getopt.h>
#include "ABRTException.h"
-#include "ABRTSocket.h"
#include "abrtlib.h"
#include "abrt_dbus.h"
#include "DBusCommon.h"
diff --git a/src/CLI/Makefile.am b/src/CLI/Makefile.am
index dbeb1c3..e84d426 100644
--- a/src/CLI/Makefile.am
+++ b/src/CLI/Makefile.am
@@ -1,15 +1,11 @@
bin_PROGRAMS = abrt-cli
+# removed: ABRTSocket.h ABRTSocket.cpp
abrt_cli_SOURCES = \
CLI.cpp \
- ABRTSocket.h \
- ABRTSocket.cpp \
- run-command.h \
- run-command.cpp \
- report.h \
- report.cpp \
- dbus.h \
- dbus.cpp
+ run-command.h run-command.cpp \
+ report.h report.cpp \
+ dbus.h dbus.cpp
abrt_cli_CPPFLAGS = \
-I$(srcdir)/../../inc \
diff --git a/src/Hooks/CCpp.cpp b/src/Hooks/CCpp.cpp
index 0f95d05..81cd77a 100644
--- a/src/Hooks/CCpp.cpp
+++ b/src/Hooks/CCpp.cpp
@@ -164,22 +164,20 @@ int main(int argc, char** argv)
try
{
- char* executable;
- char* cmdline;
- executable = get_executable(pid);
- cmdline = get_cmdline(pid);
- if (executable == NULL || cmdline == NULL)
+ char* executable = get_executable(pid);
+ if (executable == NULL)
{
- error_msg_and_die("can not get proc info for pid %u", (int)pid);
+ error_msg_and_die("can't read /proc/%u/exe link", (int)pid);
}
if (strstr(executable, "/abrt"))
{
/* free(executable); - why bother? */
- /* free(cmdline); */
error_msg_and_die("pid %u is '%s', not dumping it to avoid abrt recursion",
(int)pid, executable);
}
+ char* cmdline = get_cmdline(pid); /* never NULL */
+
char path[PATH_MAX];
snprintf(path, sizeof(path), "%s/ccpp-%ld-%u", dddir, (long)time(NULL), (int)pid);
@@ -205,19 +203,19 @@ int main(int argc, char** argv)
dd.Close();
perror_msg_and_die("can't open '%s'", path);
}
- if (copyfd_eof(STDIN_FILENO, fd) < 0)
+ off_t size = copyfd_eof(STDIN_FILENO, fd);
+ if (size < 0 || close(fd) != 0)
{
- /* close(fd); - why bother? */
+ unlink(path);
dd.Delete();
dd.Close();
/* copyfd_eof logs the error including errno string,
* but it does not log file name */
error_msg_and_die("error saving coredump to %s", path);
}
- /* close(fd); - why bother? */
- /* free(executable); */
+ /* free(executable); - why bother? */
/* free(cmdline); */
- log("saved core dump of pid %u to %s", (int)pid, path);
+ log("saved core dump of pid %u to %s (%llu bytes)", (int)pid, path, (long long)size);
}
catch (CABRTException& e)
{