From 64646a665c9fafc4454c67b6212702ed59e01c87 Mon Sep 17 00:00:00 2001 From: Lassi Marttala Date: Tue, 21 Feb 2012 12:16:23 +0100 Subject: GENDLT-15, Avoid buffer overrun with snprintf(). Check return value of dlt_user_log_write_start(_id) correctly. Reduce the number of applications if allocation fails. Make dlt_user_log_write_start inline Improve error checking in dlt_user_log_write_start_id Use databuffersize to avoid reallocations Signed-off-by: Christian Muck --- include/dlt/dlt_common.h | 3 +- include/dlt/dlt_user_macros.h | 4 +- src/daemon/dlt_daemon_common.c | 10 ++-- src/examples/dlt-example-user-func.c | 14 ++--- src/lib/dlt_user.c | 37 ++++++------ src/shared/dlt_common.c | 27 ++++++--- src/tests/dlt-test-user.c | 106 +++++++++++++++++------------------ 7 files changed, 106 insertions(+), 95 deletions(-) diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h index 686df19..19ee4d5 100755 --- a/include/dlt/dlt_common.h +++ b/include/dlt/dlt_common.h @@ -200,7 +200,7 @@ \ if(_verbose) \ { \ - sprintf(_strbuf, "%s()\n",__func__); \ + snprintf(_strbuf, 255, "%s()\n",__func__); \ dlt_log(LOG_INFO, _strbuf); \ } \ } @@ -376,6 +376,7 @@ typedef struct sDltMessage uint8_t headerbuffer[sizeof(DltStorageHeader)+ sizeof(DltStandardHeader)+sizeof(DltStandardHeaderExtra)+sizeof(DltExtendedHeader)]; /**< buffer for loading complete header */ uint8_t *databuffer; /**< buffer for loading payload */ + int32_t databuffersize; /* header values of current loaded message */ DltStorageHeader *storageheader; /**< pointer to storage header of current loaded header */ diff --git a/include/dlt/dlt_user_macros.h b/include/dlt/dlt_user_macros.h index 17a8ddb..1f95f3c 100755 --- a/include/dlt/dlt_user_macros.h +++ b/include/dlt/dlt_user_macros.h @@ -161,7 +161,7 @@ extern DltContext CONTEXT; #define DLT_LOG(CONTEXT,LOGLEVEL,ARGS...) \ { \ DltContextData log; \ - if (dlt_user_log_write_start(&CONTEXT,&log,LOGLEVEL)) \ + if (dlt_user_log_write_start(&CONTEXT,&log,LOGLEVEL)>0) \ { \ ARGS; \ dlt_user_log_write_finish(&log); \ @@ -185,7 +185,7 @@ extern DltContext CONTEXT; #define DLT_LOG_ID(CONTEXT,LOGLEVEL,MSGID,ARGS...) \ { \ DltContextData log; \ - if (dlt_user_log_write_start_id(&CONTEXT,&log,LOGLEVEL,MSGID)) \ + if (dlt_user_log_write_start_id(&CONTEXT,&log,LOGLEVEL,MSGID)>0) \ { \ ARGS; \ dlt_user_log_write_finish(&log); \ diff --git a/src/daemon/dlt_daemon_common.c b/src/daemon/dlt_daemon_common.c index 7207b4c..71ea40b 100755 --- a/src/daemon/dlt_daemon_common.c +++ b/src/daemon/dlt_daemon_common.c @@ -280,6 +280,7 @@ DltDaemonApplication* dlt_daemon_application_add(DltDaemon *daemon,char *apid,pi if (daemon->applications==0) { daemon->applications = old; + daemon->num_applications -= 1; return (DltDaemonApplication*) 0; } memcpy(daemon->applications,old,sizeof(DltDaemonApplication)*daemon->num_applications); @@ -300,10 +301,9 @@ DltDaemonApplication* dlt_daemon_application_add(DltDaemon *daemon,char *apid,pi if (application->application_description) { free(application->application_description); + application->application_description=0; // opt mb: moved inside here (very minor opt ;-) } - application->application_description=0; - if (description) { application->application_description = malloc(strlen(description)+1); @@ -325,7 +325,7 @@ DltDaemonApplication* dlt_daemon_application_add(DltDaemon *daemon,char *apid,pi dlt_user_handle = open(filename, O_WRONLY|O_NONBLOCK); if (dlt_user_handle <0) { - sprintf(str,"open() failed to %s, errno=%d (%s)!\n",filename,errno,strerror(errno)); /* errno 2: ENOENT - No such file or directory */ + snprintf(str,DLT_DAEMON_TEXTBUFSIZE, "open() failed to %s, errno=%d (%s)!\n",filename,errno,strerror(errno)); /* errno 2: ENOENT - No such file or directory */ dlt_log(LOG_ERR, str); } /* if */ @@ -558,6 +558,7 @@ DltDaemonContext* dlt_daemon_context_add(DltDaemon *daemon,char *apid,char *ctid if (daemon->contexts==0) { daemon->contexts = old; + daemon->num_contexts -= 1; return (DltDaemonContext*) 0; } memcpy(daemon->contexts,old,sizeof(DltDaemonContext)*daemon->num_contexts); @@ -579,10 +580,9 @@ DltDaemonContext* dlt_daemon_context_add(DltDaemon *daemon,char *apid,char *ctid if (context->context_description) { free(context->context_description); + context->context_description=0; // opt mb: moved inside the if clause (very minor opt) } - context->context_description=0; - if (description) { context->context_description = malloc(strlen(description)+1); diff --git a/src/examples/dlt-example-user-func.c b/src/examples/dlt-example-user-func.c index e716335..75db1b0 100755 --- a/src/examples/dlt-example-user-func.c +++ b/src/examples/dlt-example-user-func.c @@ -240,28 +240,28 @@ int main(int argc, char* argv[]) if (gflag) { /* DLT messages to test Fibex non-verbose description: dlt-example-non-verbose.xml */ - if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,10)) + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,10)>0) { dlt_user_log_write_finish(&mycontextdata); } - if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,11)) + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,11)>0) { dlt_user_log_write_uint16(&mycontextdata,1011); dlt_user_log_write_finish(&mycontextdata); } - if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,12)) + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,12)>0) { dlt_user_log_write_uint32(&mycontextdata,1012); dlt_user_log_write_uint32(&mycontextdata,1013); dlt_user_log_write_finish(&mycontextdata); } - if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,13)) + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,13)>0) { dlt_user_log_write_uint8(&mycontextdata,123); dlt_user_log_write_float32(&mycontextdata,1.12); dlt_user_log_write_finish(&mycontextdata); } - if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,14)) + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_INFO,14)>0) { dlt_user_log_write_string(&mycontextdata,"DEAD BEEF"); dlt_user_log_write_finish(&mycontextdata); @@ -275,7 +275,7 @@ int main(int argc, char* argv[]) if (gflag) { /* Non-verbose mode */ - if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_WARN,num)) + if (dlt_user_log_write_start_id(&mycontext,&mycontextdata,DLT_LOG_WARN,num)>0) { dlt_user_log_write_int(&mycontextdata,num); dlt_user_log_write_string(&mycontextdata,text); @@ -285,7 +285,7 @@ int main(int argc, char* argv[]) else { /* Verbose mode */ - if (dlt_user_log_write_start(&mycontext,&mycontextdata,DLT_LOG_WARN)) + if (dlt_user_log_write_start(&mycontext,&mycontextdata,DLT_LOG_WARN)>0) { dlt_user_log_write_int(&mycontextdata,num); dlt_user_log_write_string(&mycontextdata,text); diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index 89daac2..f655d14 100755 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -667,7 +667,7 @@ int dlt_register_context_ll_ts(DltContext *handle, const char *contextid, const if (description!=0) { - int desc_lne = strlen(description); + int desc_len = strlen(description); dlt_user.dlt_ll_ts[dlt_user.dlt_ll_ts_num_entries].context_description = malloc(desc_len+1); strncpy(dlt_user.dlt_ll_ts[dlt_user.dlt_ll_ts_num_entries].context_description, description, strlen(desc_len)); @@ -964,31 +964,26 @@ int dlt_forward_msg(void *msgdata,size_t size) /* ********************************************************************************************* */ -int dlt_user_log_write_start(DltContext *handle, DltContextData *log,DltLogLevelType loglevel) +inline int dlt_user_log_write_start(DltContext *handle, DltContextData *log,DltLogLevelType loglevel) { return dlt_user_log_write_start_id(handle,log,loglevel,DLT_USER_DEFAULT_MSGID); } int dlt_user_log_write_start_id(DltContext *handle, DltContextData *log,DltLogLevelType loglevel, uint32_t messageid) { - uint32_t mid; - - if (dlt_user_initialised==0) + if (dlt_init()<0) { - if (dlt_init()<0) - { - return -1; - } + return -1; } - if (dlt_user_log_init(handle, log)==-1) + if (log==0) { - return -1; + return -1; } - if (log==0) + if (dlt_user_log_init(handle, log)==-1) { - return -1; + return -1; } /* Removed because of DltLogLevelType @@ -1788,7 +1783,7 @@ int dlt_log_string(DltContext *handle,DltLogLevelType loglevel, const char *text return -1; } - if (dlt_user_log_write_start(handle,&log,loglevel)) + if (dlt_user_log_write_start(handle,&log,loglevel)>0) { if (dlt_user_log_write_string(&log,text)==-1) { @@ -1817,7 +1812,7 @@ int dlt_log_string_int(DltContext *handle,DltLogLevelType loglevel, const char * return -1; } - if (dlt_user_log_write_start(handle,&log,loglevel)) + if (dlt_user_log_write_start(handle,&log,loglevel)>0) { if (dlt_user_log_write_string(&log,text)==-1) { @@ -1850,7 +1845,7 @@ int dlt_log_string_uint(DltContext *handle,DltLogLevelType loglevel, const char return -1; } - if (dlt_user_log_write_start(handle,&log,loglevel)) + if (dlt_user_log_write_start(handle,&log,loglevel)>0) { if (dlt_user_log_write_string(&log,text)==-1) { @@ -1883,7 +1878,7 @@ int dlt_log_int(DltContext *handle,DltLogLevelType loglevel, int data) return -1; } - if (dlt_user_log_write_start(handle,&log,loglevel)) + if (dlt_user_log_write_start(handle,&log,loglevel)>0) { if (dlt_user_log_write_int(&log,data)==-1) { @@ -1912,7 +1907,7 @@ int dlt_log_uint(DltContext *handle,DltLogLevelType loglevel, unsigned int data) return -1; } - if (dlt_user_log_write_start(handle,&log,loglevel)) + if (dlt_user_log_write_start(handle,&log,loglevel)>0) { if (dlt_user_log_write_uint(&log,data)==-1) { @@ -1941,7 +1936,7 @@ int dlt_log_raw(DltContext *handle,DltLogLevelType loglevel, void *data,uint16_t return -1; } - if (dlt_user_log_write_start(handle,&log,loglevel)) + if (dlt_user_log_write_start(handle,&log,loglevel)>0) { if (dlt_user_log_write_raw(&log,data,length)==-1) { @@ -2567,6 +2562,7 @@ int dlt_user_print_msg(DltMessage *msg, DltContextData *log) { uint8_t *databuffer_tmp; int32_t datasize_tmp; + int32_t databuffersize_tmp; static char text[DLT_USER_TEXT_LENGTH]; if ((msg==0) || (log==0)) @@ -2577,6 +2573,7 @@ int dlt_user_print_msg(DltMessage *msg, DltContextData *log) /* Save variables before print */ databuffer_tmp = msg->databuffer; datasize_tmp = msg->datasize; + databuffersize_tmp = msg->databuffersize; /* Act like a receiver, convert header back to host format */ msg->standardheader->len = DLT_BETOH_16(msg->standardheader->len); @@ -2584,6 +2581,7 @@ int dlt_user_print_msg(DltMessage *msg, DltContextData *log) msg->databuffer = log->buffer; msg->datasize = log->size; + msg->databuffersize = log->size; /* Print message as ASCII */ if (dlt_message_print_ascii(msg,text,DLT_USER_TEXT_LENGTH,0)==-1) @@ -2593,6 +2591,7 @@ int dlt_user_print_msg(DltMessage *msg, DltContextData *log) /* Restore variables and set len to BE*/ msg->databuffer = databuffer_tmp; + msg->databuffersize = databuffersize_tmp; msg->datasize = datasize_tmp; msg->standardheader->len = DLT_HTOBE_16(msg->standardheader->len); diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c index 4ebdaf1..31073d6 100755 --- a/src/shared/dlt_common.c +++ b/src/shared/dlt_common.c @@ -698,6 +698,7 @@ int dlt_message_init(DltMessage *msg,int verbose) msg->datasize = 0; msg->databuffer = 0; + msg->databuffersize = 0; msg->storageheader = 0; msg->standardheader = 0; @@ -720,8 +721,9 @@ int dlt_message_free(DltMessage *msg,int verbose) if (msg->databuffer) { free(msg->databuffer); + msg->databuffer = 0; + msg->databuffersize = 0; } - msg->databuffer = 0; return 0; } @@ -1241,11 +1243,16 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res /* free last used memory for buffer */ if (msg->databuffer) { - free(msg->databuffer); + if (msg->datasize>msg->databuffersize){ + free(msg->databuffer); + msg->databuffer=(uint8_t *)malloc(msg->datasize); + msg->databuffersize = msg->datasize; + } + }else{ + /* get new memory for buffer */ + msg->databuffer = (uint8_t *)malloc(msg->datasize); + msg->databuffersize = msg->datasize; } - - /* get new memory for buffer */ - msg->databuffer = (uint8_t *)malloc(msg->datasize); if (msg->databuffer == 0) { sprintf(str,"Cannot allocate memory for payload buffer of size %d!\n",msg->datasize); @@ -1588,13 +1595,17 @@ int dlt_file_read_data(DltFile *file, int verbose) } /* free last used memory for buffer */ - if (file->msg.databuffer) + if (file->msg.databuffer && (file->msg.databuffersize < file->msg.datasize)) { free(file->msg.databuffer); + file->msg.databuffer=0; } - /* get new memory for buffer */ - file->msg.databuffer = (uint8_t *)malloc(file->msg.datasize); + if (file->msg.databuffer == 0){ + /* get new memory for buffer */ + file->msg.databuffer = (uint8_t *)malloc(file->msg.datasize); + file->msg.databuffersize = file->msg.datasize; + } if (file->msg.databuffer == 0) { diff --git a/src/tests/dlt-test-user.c b/src/tests/dlt-test-user.c index 7a3f2fa..4e26d9d 100755 --- a/src/tests/dlt-test-user.c +++ b/src/tests/dlt-test-user.c @@ -255,7 +255,7 @@ int main(int argc, char* argv[]) DLT_REGISTER_INJECTION_CALLBACK(context_macro_callback, 0xFFF, test_injection_macro_callback); /* with function interface */ - if (dlt_user_log_write_start(&context_function_callback,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_function_callback,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Register callback (Function Interface) for Injection ID: 0xFFF"); dlt_user_log_write_finish(&context_data); @@ -550,38 +550,38 @@ int test1f(void) { /* Test 1: (Function IF) Test all log levels */ printf("Test1f: (Function IF) Test all log levels\n"); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test1: (Function IF) Test all log levels"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_FATAL)) + if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_FATAL)>0) { dlt_user_log_write_string(&context_data,"fatal"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_ERROR)) + if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_ERROR)>0) { dlt_user_log_write_string(&context_data,"error"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_WARN)) + if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_WARN)>0) { dlt_user_log_write_string(&context_data,"warn"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"info"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_DEBUG)) + if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_DEBUG)>0) { dlt_user_log_write_string(&context_data,"debug"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_VERBOSE)) + if (dlt_user_log_write_start(&(context_function_test[0]),&context_data,DLT_LOG_VERBOSE)>0) { dlt_user_log_write_string(&context_data,"verbose"); dlt_user_log_write_finish(&context_data); @@ -589,7 +589,7 @@ int test1f(void) /* wait 2 second before next test */ sleep(2); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test1: (Function IF) finished"); dlt_user_log_write_finish(&context_data); @@ -605,89 +605,89 @@ int test2f(void) /* Test 2: (Function IF) Test all variable types (verbose) */ printf("Test2f: (Function IF) Test all variable types (verbose)\n"); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test2: (Function IF) Test all variable types (verbose)"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"bool"); dlt_user_log_write_bool(&context_data,1); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"int"); dlt_user_log_write_int(&context_data,INT32_MIN); /* (-2147483647-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"int8"); dlt_user_log_write_int8(&context_data,INT8_MIN); /* (-128) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"int16"); dlt_user_log_write_int16(&context_data,INT16_MIN); /* (-32767-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"int32"); dlt_user_log_write_int32(&context_data,INT32_MIN); /* (-2147483647-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"int64"); dlt_user_log_write_int64(&context_data,INT64_MIN); /* (-__INT64_C(9223372036854775807)-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"uint"); dlt_user_log_write_uint(&context_data,UINT32_MAX); /* (4294967295U) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"uint8"); dlt_user_log_write_uint8(&context_data,UINT8_MAX); /* (255) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"uint16"); dlt_user_log_write_uint16(&context_data,UINT16_MAX); /* (65535) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"uint32"); dlt_user_log_write_uint32(&context_data,UINT32_MAX); /* (4294967295U) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"uint64"); dlt_user_log_write_uint64(&context_data,UINT64_MAX); /* (__UINT64_C(18446744073709551615)) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"float32"); dlt_user_log_write_float32(&context_data,FLT_MIN); dlt_user_log_write_float32(&context_data,FLT_MAX); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"float64"); dlt_user_log_write_float64(&context_data,DBL_MIN); @@ -700,7 +700,7 @@ int test2f(void) buffer[num2] = num2; } - if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[1]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"raw"); dlt_user_log_write_raw(&context_data,buffer,10); @@ -709,7 +709,7 @@ int test2f(void) /* wait 2 second before next test */ sleep(2); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test2: (Function IF) finished"); dlt_user_log_write_finish(&context_data); @@ -725,7 +725,7 @@ int test3f(void) /* Test 3: (Function IF) Test all variable types (non-verbose) */ printf("Test3f: (Function IF) Test all variable types (non-verbose)\n"); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test3: (Function IF) Test all variable types (non-verbose)"); dlt_user_log_write_finish(&context_data); @@ -733,83 +733,83 @@ int test3f(void) dlt_nonverbose_mode(); - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,1)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,1)>0) // bug mb: we have to compare against >0. in case of error -1 is returned! { dlt_user_log_write_string(&context_data,"bool"); dlt_user_log_write_bool(&context_data,1); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,2)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,2)>0) { dlt_user_log_write_string(&context_data,"int"); dlt_user_log_write_int(&context_data,INT32_MIN); /* (-2147483647-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,3)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,3)>0) { dlt_user_log_write_string(&context_data,"int8"); dlt_user_log_write_int8(&context_data,INT8_MIN); /* (-128) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,4)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,4)>0) { dlt_user_log_write_string(&context_data,"int16"); dlt_user_log_write_int16(&context_data,INT16_MIN); /* (-32767-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,5)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,5)>0) { dlt_user_log_write_string(&context_data,"int32"); dlt_user_log_write_int32(&context_data,INT32_MIN); /* (-2147483647-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,6)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,6)>0) { dlt_user_log_write_string(&context_data,"int64"); dlt_user_log_write_int64(&context_data,INT64_MIN); /* (-__INT64_C(9223372036854775807)-1) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,7)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,7)>0) { dlt_user_log_write_string(&context_data,"uint"); dlt_user_log_write_uint(&context_data,UINT32_MAX); /* (4294967295U) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,8)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,8)>0) { dlt_user_log_write_string(&context_data,"uint8"); dlt_user_log_write_uint8(&context_data,UINT8_MAX); /* (255) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,9)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,9)>0) { dlt_user_log_write_string(&context_data,"uint16"); dlt_user_log_write_uint16(&context_data,UINT16_MAX); /* (65535) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,10)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,10)>0) { dlt_user_log_write_string(&context_data,"uint32"); dlt_user_log_write_uint32(&context_data,UINT32_MAX); /* (4294967295U) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,11)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,11)>0) { dlt_user_log_write_string(&context_data,"uint64"); dlt_user_log_write_uint64(&context_data,UINT64_MAX); /* (__UINT64_C(18446744073709551615)) */ dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,12)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,12)>0) { dlt_user_log_write_string(&context_data,"float32"); dlt_user_log_write_float32(&context_data,FLT_MIN); dlt_user_log_write_float32(&context_data,FLT_MAX); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,13)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,13)>0) { dlt_user_log_write_string(&context_data,"float64"); dlt_user_log_write_float64(&context_data,DBL_MIN); @@ -822,7 +822,7 @@ int test3f(void) buffer[num2] = num2; } - if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,14)) + if (dlt_user_log_write_start_id(&(context_function_test[2]),&context_data,DLT_LOG_INFO,14)>0) { dlt_user_log_write_string(&context_data,"raw"); dlt_user_log_write_raw(&context_data,buffer,10); @@ -833,7 +833,7 @@ int test3f(void) /* wait 2 second before next test */ sleep(2); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test3: (Function IF) finished"); dlt_user_log_write_finish(&context_data); @@ -854,31 +854,31 @@ int test4f(void) /* Test 4: (Function IF) Message size test */ printf("Test4f: (Function IF) Test different message sizes\n"); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test4: (Function IF) Test different message sizes"); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"1"); dlt_user_log_write_raw(&context_data,buffer,1); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"16"); dlt_user_log_write_raw(&context_data,buffer,16); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"256"); dlt_user_log_write_raw(&context_data,buffer,256); dlt_user_log_write_finish(&context_data); } - if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[3]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"1024"); dlt_user_log_write_raw(&context_data,buffer,1024); @@ -887,7 +887,7 @@ int test4f(void) /* wait 2 second before next test */ sleep(2); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test4: (Function IF) finished"); dlt_user_log_write_finish(&context_data); @@ -939,21 +939,21 @@ int test6f(void) { /* Test 6: (Function IF) Test local printing */ printf("Test6f: (Function IF) Test local printing\n"); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test 6: (Function IF) Test local printing"); dlt_user_log_write_finish(&context_data); } dlt_enable_local_print(); - if (dlt_user_log_write_start(&(context_function_test[5]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[5]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Message (visible: locally printed)"); dlt_user_log_write_finish(&context_data); } dlt_disable_local_print(); - if (dlt_user_log_write_start(&(context_function_test[5]),&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&(context_function_test[5]),&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Message (invisible: not locally printed)"); dlt_user_log_write_finish(&context_data); @@ -961,7 +961,7 @@ int test6f(void) /* wait 2 second before next test */ sleep(2); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test6: (Function IF) finished"); dlt_user_log_write_finish(&context_data); @@ -985,7 +985,7 @@ int test7f(void) /* Test 7: (Function IF) Test network trace */ printf("Test7f: (Function IF) Test network trace\n"); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test 7: (Function IF) Test network trace"); dlt_user_log_write_finish(&context_data); @@ -999,7 +999,7 @@ int test7f(void) /* wait 2 second before next test */ sleep(2); - if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)) + if (dlt_user_log_write_start(&context_info,&context_data,DLT_LOG_INFO)>0) { dlt_user_log_write_string(&context_data,"Test7: (Function IF) finished"); dlt_user_log_write_finish(&context_data); -- cgit v1.2.1