From 3f89c080ab54ed6824badd5ab975e074589a0dea Mon Sep 17 00:00:00 2001 From: Kamalesh Babulal Date: Mon, 18 May 2015 10:30:53 +0530 Subject: [PATCH 2/7] src/event.c: Fix possible NULL dereference(s) Check potential NULL dereferences, before dereferencing pointers. Signed-off-by: Kamalesh Babulal Cc: Vasant Hegde Signed-off-by: Vasant Hegde --- src/event.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/event.c b/src/event.c index 09b9d8e..300f58c 100644 --- a/src/event.c +++ b/src/event.c @@ -138,7 +138,7 @@ servicelog_event_log(servicelog *slog, struct sl_event *event, char buf[SQL_MAXLEN], timebuf[32], serialbuf[20], modelbuf[20]; char description[DESC_MAXLEN]; struct tm *t; - struct sl_callout *callout = event->callouts; + struct sl_callout *callout; struct utsname uname_buf; if (new_id != NULL) @@ -146,7 +146,10 @@ servicelog_event_log(servicelog *slog, struct sl_event *event, /* Input validation begins here */ - if ((slog == NULL) || (event == NULL)) { + if (slog == NULL) + return 1; + + if (event == NULL) { snprintf(slog->error, SL_MAX_ERR, "Invalid parameter(s) to servicelog_event_log()"); return 1; @@ -215,7 +218,7 @@ servicelog_event_log(servicelog *slog, struct sl_event *event, } /* Input data looks valid at this point */ - + callout = event->callouts; while (callout) { n_callouts++; callout = callout->next; @@ -440,7 +443,10 @@ servicelog_event_query(servicelog *slog, char *query, int (*retrieve_fcn)(void *, int, char **, char **); sqlite3_stmt *stmt; - if ((slog == NULL) || (query == NULL) || (event == NULL)) { + if (slog == NULL) + return 1; + + if ((query == NULL) || (event == NULL)) { snprintf(slog->error, SL_MAX_ERR, "Invalid parameter(s)"); return 1; } -- 1.9.1