From 29f23a390f0ce481f4ef815e7ef9f91f987b7eae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Fri, 21 Jul 2017 17:10:55 +0200 Subject: [PATCH] mavlink_ftp: avoid using seekdir() The provided argument payload->offset is in range [0, num_file_entries-1], but seekdir might use a completely different range. It is not defined by the API spec. It is only useful in conjunction with telldir(). --- src/modules/mavlink/mavlink_ftp.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/mavlink/mavlink_ftp.cpp b/src/modules/mavlink/mavlink_ftp.cpp index ae825c1019..c5b84f7745 100644 --- a/src/modules/mavlink/mavlink_ftp.cpp +++ b/src/modules/mavlink/mavlink_ftp.cpp @@ -311,7 +311,8 @@ MavlinkFTP::_workList(PayloadHeader *payload, bool list_hidden) struct dirent *result = nullptr; // move to the requested offset - seekdir(dp, payload->offset); + int requested_offset = payload->offset; + while (requested_offset-- > 0 && readdir(dp)); for (;;) { errno = 0;