diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2009-07-31 03:58:05 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-07-31 03:58:05 +0200 |
commit | 9a2270d2c89f58fbed72d1811dfbe308fdf495ac (patch) | |
tree | 35bf64ad03e5d5c4ffe122bd2215e0cb2179497a /lib/Plugins/KerneloopsReporter.cpp | |
parent | b276cf3a378b33d2d965181357dfa2e3ddc07bc7 (diff) | |
download | abrt-9a2270d2c89f58fbed72d1811dfbe308fdf495ac.tar.gz abrt-9a2270d2c89f58fbed72d1811dfbe308fdf495ac.tar.xz abrt-9a2270d2c89f58fbed72d1811dfbe308fdf495ac.zip |
bug fixes in kerneloops scanner
CKerneloopsScanner::Run - scan syslog file first, then dmesg
(was other way around)
CKerneloopsScanner::SaveOopsToDebug - cast time_t and size_t to long
when we feed them to snprintf
CKerneloopsScanner::ScanSysLogFile - do not seek to negative offsets,
POSIX does not allow that
CSysLog::QueueOops - plug memory leak
Also used some abrtlib functions where appropriate, use open instead of fopen
where appropriate, do not check error in time() - it never fails,
move around bits of code in CKerneloopsScanner
to make it easier in future to create a tool for parsing
arbitrary files for oopses.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'lib/Plugins/KerneloopsReporter.cpp')
-rw-r--r-- | lib/Plugins/KerneloopsReporter.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/Plugins/KerneloopsReporter.cpp b/lib/Plugins/KerneloopsReporter.cpp index b023106..2b5e2be 100644 --- a/lib/Plugins/KerneloopsReporter.cpp +++ b/lib/Plugins/KerneloopsReporter.cpp @@ -23,32 +23,32 @@ * Anton Arapov <anton@redhat.com> * Arjan van de Ven <arjan@linux.intel.com> */ +#include "abrtlib.h" #include "KerneloopsReporter.h" #include "PluginSettings.h" #include "CommLayerInner.h" -#include <stdlib.h> -#include <string.h> +//#include <stdlib.h> +//#include <string.h> #include <curl/curl.h> #define FILENAME_KERNELOOPS "kerneloops" CKerneloopsReporter::CKerneloopsReporter() : - m_sSubmitURL("http://submit.kerneloops.org/submitoops.php") + m_sSubmitURL("http://submit.kerneloops.org/submitoops.php") {} -size_t writefunction(void *ptr, size_t size, size_t nmemb, void __attribute((unused)) *stream) +size_t writefunction(void *ptr, size_t size, size_t nmemb, void *stream) { char *c, *c1, *c2; - c = (char*)malloc(size*nmemb + 1); - memset(c, 0, size*nmemb + 1); + c = (char*)xzalloc(size*nmemb + 1); memcpy(c, ptr, size*nmemb); printf("received %s \n", c); c1 = strstr(c, "201 "); if (c1) { - c1+=4; + c1 += 4; c2 = strchr(c1, '\n'); if (c2) *c2 = 0; @@ -59,7 +59,7 @@ size_t writefunction(void *ptr, size_t size, size_t nmemb, void __attribute((unu void CKerneloopsReporter::Report(const map_crash_report_t& pCrashReport, const std::string& pArgs) { - comm_layer_inner_status("Creating and submitting a report..."); + comm_layer_inner_status("Creating and submitting a report..."); CURL *handle; struct curl_httppost *post = NULL; |