summaryrefslogtreecommitdiff
path: root/src/system
diff options
context:
space:
mode:
authorSimon Brandner <simon.brandner@partner.bmw.de>2013-03-18 13:52:42 +0100
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2013-07-19 16:54:42 +0200
commit64012cd52293c8126e8ab332ef0f665d27f7c594 (patch)
tree0f67c94d1dcd636f61d28fdaeefdf251eb094d75 /src/system
parent3bbfc218fd5053e95c6de274ef5a28ca80bcdee2 (diff)
downloadDLT-daemon-64012cd52293c8126e8ab332ef0f665d27f7c594.tar.gz
added length check for paths of files to be transferred
Signed-off-by: Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>
Diffstat (limited to 'src/system')
-rw-r--r--src/system/dlt-system-filetransfer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/system/dlt-system-filetransfer.c b/src/system/dlt-system-filetransfer.c
index d33e6b9..b75f614 100644
--- a/src/system/dlt-system-filetransfer.c
+++ b/src/system/dlt-system-filetransfer.c
@@ -663,6 +663,12 @@ int wait_for_files(FiletransferOptions const *opts)
{
DLT_LOG(dltsystem, DLT_LOG_DEBUG, DLT_STRING("dlt-system-filetransfer, found new file."));
int length = strlen(opts->Directory[j])+ie->len+1;
+ if (length > PATH_MAX)
+ {
+ DLT_LOG(filetransferContext, DLT_LOG_ERROR,
+ DLT_STRING("dlt-system-filetransfer: Very long path for file transfer. Cancelling transfer! Length is: "),DLT_INT(length));
+ return -1;
+ }
char *tosend = malloc(length);
snprintf(tosend,length, "%s/%s", opts->Directory[j], ie->name);
send_one(tosend, opts, j);