summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/dlt_offline_trace.c29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/shared/dlt_offline_trace.c b/src/shared/dlt_offline_trace.c
index 8fd1dc9..5eb49f5 100644
--- a/src/shared/dlt_offline_trace.c
+++ b/src/shared/dlt_offline_trace.c
@@ -138,17 +138,20 @@ unsigned int dlt_offline_trace_storage_dir_info(char *path, char *file_name, cha
return num;
}
-void dlt_offline_trace_file_name(char *log_file_name, char *name, unsigned int idx)
+void dlt_offline_trace_file_name(char *log_file_name, size_t length,
+ char *name, unsigned int idx)
{
char file_index[11]; /* UINT_MAX = 4294967295 -> 10 digits */
snprintf(file_index, sizeof(file_index), "%010u", idx);
/* create log file name */
- memset(log_file_name, 0, DLT_OFFLINETRACE_FILENAME_MAX_SIZE * sizeof(char));
- strncat(log_file_name, name, sizeof(log_file_name) - strlen(log_file_name) - 1);
- strncat(log_file_name, DLT_OFFLINETRACE_FILENAME_DELI, sizeof(log_file_name) - strlen(log_file_name) - 1);
- strncat(log_file_name, file_index, sizeof(log_file_name) - strlen(log_file_name) - 1);
- strncat(log_file_name, DLT_OFFLINETRACE_FILENAME_EXT, sizeof(log_file_name) - strlen(log_file_name) - 1);
+ memset(log_file_name, 0, length * sizeof(char));
+ strncat(log_file_name, name, length - strlen(log_file_name) - 1);
+ strncat(log_file_name, DLT_OFFLINETRACE_FILENAME_DELI,
+ length - strlen(log_file_name) - 1);
+ strncat(log_file_name, file_index, length - strlen(log_file_name) - 1);
+ strncat(log_file_name, DLT_OFFLINETRACE_FILENAME_EXT,
+ length - strlen(log_file_name) - 1);
}
unsigned int dlt_offline_trace_get_idx_of_log_file(char *file)
@@ -177,19 +180,17 @@ DltReturnValue dlt_offline_trace_create_new_file(DltOfflineTrace *trace)
{
time_t t;
struct tm tmp;
- char outstr[200];
- char newest[DLT_OFFLINETRACE_FILENAME_MAX_SIZE] = { 0 };
- char oldest[DLT_OFFLINETRACE_FILENAME_MAX_SIZE] = { 0 };
+ char outstr[NAME_MAX];
unsigned int idx = 0;
+ int ret = 0;
/* set filename */
if (trace->filenameTimestampBased) {
- int ret = 0;
t = time(NULL);
tzset();
localtime_r(&t, &tmp);
- strftime(outstr, sizeof(outstr), "%Y%m%d_%H%M%S", &tmp);
+ strftime(outstr, NAME_MAX, "%Y%m%d_%H%M%S", &tmp);
ret = snprintf(trace->filename, NAME_MAX, "%s/dlt_offlinetrace_%s.dlt", trace->directory, outstr);
@@ -199,12 +200,14 @@ DltReturnValue dlt_offline_trace_create_new_file(DltOfflineTrace *trace)
}
}
else {
- int ret = 0;
+ char newest[DLT_OFFLINETRACE_FILENAME_MAX_SIZE] = { 0 };
+ char oldest[DLT_OFFLINETRACE_FILENAME_MAX_SIZE] = { 0 };
/* targeting newest file, ignoring number of files in dir returned */
dlt_offline_trace_storage_dir_info(trace->directory, DLT_OFFLINETRACE_FILENAME_BASE, newest, oldest);
idx = dlt_offline_trace_get_idx_of_log_file(newest) + 1;
- dlt_offline_trace_file_name(outstr, DLT_OFFLINETRACE_FILENAME_BASE, idx);
+ dlt_offline_trace_file_name(outstr, NAME_MAX,
+ DLT_OFFLINETRACE_FILENAME_BASE, idx);
ret = snprintf(trace->filename, NAME_MAX, "%s/%s", trace->directory, outstr);
if ((ret < 0) || (ret >= NAME_MAX)) {