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/KerneloopsSysLog.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/KerneloopsSysLog.cpp')
-rw-r--r-- | lib/Plugins/KerneloopsSysLog.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/Plugins/KerneloopsSysLog.cpp b/lib/Plugins/KerneloopsSysLog.cpp index 008d071..a30fc69 100644 --- a/lib/Plugins/KerneloopsSysLog.cpp +++ b/lib/Plugins/KerneloopsSysLog.cpp @@ -77,8 +77,8 @@ void CSysLog::QueueOops(char *data, char *version) if (m_nFoundOopses > MAX_OOPS) return; - m_NewOops.m_sData = xstrdup(data); - m_NewOops.m_sVersion = xstrdup(version); + m_NewOops.m_sData = data; + m_NewOops.m_sVersion = version; m_OopsQueue.push_back(m_NewOops); m_nFoundOopses++; @@ -357,10 +357,10 @@ int CSysLog::ExtractOops(char *buffer, size_t buflen, int remove_syslog) len = 2; for (q = oopsstart; q <= oopsend; q++) - len += strlen(lines_info[q].ptr)+1; + len += strlen(lines_info[q].ptr) + 1; - oops = (char*)calloc(len, 1); - version = (char*)calloc(len, 1); + oops = (char*)xzalloc(len); + version = (char*)xzalloc(len); is_version = 0; for (q = oopsstart; q <= oopsend; q++) { |