summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Weber <37300320+danielweber2018@users.noreply.github.com>2022-12-01 04:51:36 +0100
committerGitHub <noreply@github.com>2022-12-01 10:51:36 +0700
commit4857ffca487d551564dfee41d1ad89f2db9ac1af (patch)
treea156570f974b03f1b0b27651755267b806e9848e
parented8354ff0255061222e35b81a9cc156ec3b056ae (diff)
downloadDLT-daemon-4857ffca487d551564dfee41d1ad89f2db9ac1af.tar.gz
filetransfer: fix filesize divisible by blocksize case (#383)
If the file size is divisible by the package size don't send one empty FLDA. Also we send the correct number of FLDAs too. Signed-off-by: Daniel Weber <daniel.w.weber@mercedes-benz.com>
-rw-r--r--src/lib/dlt_filetransfer.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/dlt_filetransfer.c b/src/lib/dlt_filetransfer.c
index fd8c5e3..3c71e68 100644
--- a/src/lib/dlt_filetransfer.c
+++ b/src/lib/dlt_filetransfer.c
@@ -657,6 +657,13 @@ int dlt_user_log_file_data(DltContext *fileContext,
if (checkUserBufferForFreeSpace() > 0) {
pkgNumber++;
readBytes = fread(buffer, sizeof(char), BUFFER_SIZE, file);
+
+ if (readBytes == 0) {
+ // If the file size is divisible by the package size don't send
+ // one empty FLDA. Also we send the correct number of FLDAs too.
+ break;
+ }
+
int ok;
uint32_t fserial = getFileSerialNumber(filename, &ok);