summaryrefslogtreecommitdiff
path: root/src/shared/dlt_offline_trace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/dlt_offline_trace.c')
-rw-r--r--src/shared/dlt_offline_trace.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/shared/dlt_offline_trace.c b/src/shared/dlt_offline_trace.c
index be29831..554e2d5 100644
--- a/src/shared/dlt_offline_trace.c
+++ b/src/shared/dlt_offline_trace.c
@@ -76,7 +76,7 @@ int dlt_offline_trace_create_new_file(DltOfflineTrace *trace) {
}
if (strftime(outstr, sizeof(outstr),"%Y%m%d_%H%M%S", tmp) == 0) {
}
- sprintf(trace->filename,"%s/dlt_offlinetrace_%s.dlt",trace->directory,outstr);
+ snprintf(trace->filename,NAME_MAX + 1,"%s/dlt_offlinetrace_%s.dlt",trace->directory,outstr);
/* open DLT output file */
trace->ohandle = open(trace->filename,O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); /* mode: wb */
@@ -129,8 +129,8 @@ unsigned long dlt_offline_trace_get_total_size(DltOfflineTrace *trace) {
int dlt_offline_trace_delete_oldest_file(DltOfflineTrace *trace) {
struct dirent *dp;
- char filename[256];
- char filename_oldest[256];
+ char filename[PATH_MAX+1];
+ char filename_oldest[PATH_MAX+1];
unsigned long size_oldest = 0;
struct stat status;
time_t time_oldest = 0;
@@ -153,7 +153,8 @@ int dlt_offline_trace_delete_oldest_file(DltOfflineTrace *trace) {
if(time_oldest == 0 || status.st_mtime < time_oldest) {
time_oldest = status.st_mtime;
size_oldest = status.st_size;
- strcpy(filename_oldest,filename);
+ strncpy(filename_oldest,filename,PATH_MAX);
+ filename_oldest[PATH_MAX]=0;
}
}
else
@@ -196,7 +197,8 @@ int dlt_offline_trace_check_size(DltOfflineTrace *trace) {
int dlt_offline_trace_init(DltOfflineTrace *trace,const char *directory,int fileSize,int maxSize) {
/* init parameters */
- strncpy(trace->directory,directory,NAME_MAX);
+ strncpy(trace->directory,directory,NAME_MAX);
+ trace->directory[NAME_MAX]=0;
trace->fileSize = fileSize;
trace->maxSize = maxSize;