From 979364a42e12b1bb473a5bcc1554ef0b2ce80fde Mon Sep 17 00:00:00 2001 From: "S. Hameed" Date: Mon, 23 Nov 2015 18:00:33 +0900 Subject: Offline logstorage: Fixed extended header size to support configuration in dlt_user_cfg.h Signed-off-by: S. Hameed --- src/offlinelogstorage/dlt_offline_logstorage.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/offlinelogstorage') diff --git a/src/offlinelogstorage/dlt_offline_logstorage.c b/src/offlinelogstorage/dlt_offline_logstorage.c index 3e964bd..e6be6f9 100644 --- a/src/offlinelogstorage/dlt_offline_logstorage.c +++ b/src/offlinelogstorage/dlt_offline_logstorage.c @@ -1311,6 +1311,9 @@ int dlt_logstorage_write(DltLogStorage *handle, * DltExtendedHeader. We are interested in ecuid, apid, ctid and loglevel */ DltExtendedHeader *extendedHeader; DltStandardHeaderExtra *extraHeader; + DltStandardHeader *standardHeader; + int standardHeaderExtraLen = 0; + int log_level = -1; if (handle == NULL || uconfig == NULL || @@ -1320,10 +1323,25 @@ int dlt_logstorage_write(DltLogStorage *handle, { return 0; } + /* Calculate real length of DltStandardHeaderExtra */ + standardHeader = (DltStandardHeader *)data2; + standardHeaderExtraLen = sizeof(DltStandardHeaderExtra); + if (!DLT_IS_HTYP_WEID(standardHeader->htyp)) + { + standardHeaderExtraLen -= DLT_ID_SIZE; + } + if (!DLT_IS_HTYP_WSID(standardHeader->htyp)) + { + standardHeaderExtraLen -= DLT_SIZE_WSID; + } + if (!DLT_IS_HTYP_WTMS(standardHeader->htyp)) + { + standardHeaderExtraLen -= DLT_SIZE_WTMS; + } extendedHeader = (DltExtendedHeader *)(data2 + sizeof(DltStandardHeader) + - sizeof(DltStandardHeaderExtra)); + standardHeaderExtraLen); extraHeader = (DltStandardHeaderExtra *)(data2 + sizeof(DltStandardHeader)); log_level = DLT_GET_MSIN_MTIN(extendedHeader->msin); -- cgit v1.2.1