summaryrefslogtreecommitdiff
path: root/src/shared/dlt_offline_trace.c
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2014-03-26 16:42:26 +0100
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2014-04-01 10:21:04 +0200
commit2d3dc13f481bd6a5dfc16511f7df89903b69c4fd (patch)
tree6f0ffd297c7fc6c7b517784753455e2860bde8ec /src/shared/dlt_offline_trace.c
parent8594f384fe8d622c20e7cb6091a2e99313e9830e (diff)
downloadDLT-daemon-2d3dc13f481bd6a5dfc16511f7df89903b69c4fd.tar.gz
Fixed: all possible malloc, sprintf and strcpy problems
Signed-off-by: Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>
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;