From 79bb30ce3d011b5aed5a303a41e05edf99929da4 Mon Sep 17 00:00:00 2001 From: Peter Lichard Date: Tue, 5 Nov 2024 09:23:28 +0000 Subject: [PATCH] fix(ftp): List empty directory (#23638) --- src/modules/mavlink/mavlink_ftp.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/modules/mavlink/mavlink_ftp.cpp b/src/modules/mavlink/mavlink_ftp.cpp index 058e9d95f1..f811eb82f0 100644 --- a/src/modules/mavlink/mavlink_ftp.cpp +++ b/src/modules/mavlink/mavlink_ftp.cpp @@ -399,17 +399,11 @@ MavlinkFTP::_workList(PayloadHeader *payload) payload->data[offset++] = kDirentSkip; *((char *)&payload->data[offset]) = '\0'; offset++; - payload->size = offset; - closedir(dp); + errorCode = kErrFailErrno; - return errorCode; - } - - // FIXME: does this ever happen? I would assume readdir always sets errno. - // no more entries? - if (payload->offset != 0 && offset == 0) { + } else if (offset == 0) { // User is requesting subsequent dir entries but there were none. This means the user asked - // to seek past EOF. + // to seek past EOF. This can happen with `payload->offset == 0` if the directory is empty. errorCode = kErrEOF; }