gnss: truncate temporary file before download

A temporary file is used to download the GNSS assistance data.
It's created and truncated at initialization, but not truncated
when a re-upload is necessary (when data expires).
This causes to corrupt the GNSS assistance data if the new downloaded
data is smaller than the previous download.
This commit is contained in:
Dylan Van Assche
2021-09-07 07:32:55 +02:00
parent 8913300997
commit 41511cbc5f
2 changed files with 3 additions and 0 deletions

View File

@@ -191,6 +191,8 @@ static void fetch_assistance_data(struct EG25Manager *manager)
/* Fetch assistance data with curl */
tmp_file = fdopen(manager->gnss_assistance_fd, "wb+");
lseek(manager->gnss_assistance_fd, 0, SEEK_SET);
ftruncate(manager->gnss_assistance_fd, 0);
url = g_strconcat(manager->gnss_assistance_url, "/",
manager->gnss_assistance_file, NULL);
curl = curl_easy_init();

View File

@@ -7,6 +7,7 @@
#pragma once
#include <time.h>
#include <unistd.h>
#include <curl/curl.h>
#include "manager.h"