From 64012cd52293c8126e8ab332ef0f665d27f7c594 Mon Sep 17 00:00:00 2001 From: Simon Brandner Date: Mon, 18 Mar 2013 13:52:42 +0100 Subject: [PATCH] added length check for paths of files to be transferred Signed-off-by: Alexander Wenzel --- src/system/dlt-system-filetransfer.c | 6 ++++++ 1 file changed, 6 insertions(+) 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); -- 2.7.4