I believe that this works for me:

diff --git a/libindi/libs/indibase/inditelescope.cpp b/libindi/libs/indibase/inditelescope.cpp
index 25e149bb..12b05bb4 100644
--- a/libindi/libs/indibase/inditelescope.cpp
+++ b/libindi/libs/indibase/inditelescope.cpp
@@ -1912,6 +1912,8 @@ const char *Telescope::LoadParkXML()
delXMLEle(ParkdataXmlRoot);

ParkdataXmlRoot = readXMLFile(fp, lp, errmsg);
+ fclose(fp);
+

delLilXML(lp);
if (!ParkdataXmlRoot)
@@ -2038,6 +2040,7 @@ bool Telescope::PurgeParkData()
delXMLEle(ParkdataXmlRoot);

ParkdataXmlRoot = readXMLFile(fp, lp, errmsg);
+ fclose(fp);

delLilXML(lp);
if (!ParkdataXmlRoot)
@@ -2555,6 +2558,7 @@ bool Telescope::LoadScopeConfig()
char ErrMsg[512];

RootXmlNode = readXMLFile(FilePtr, XmlHandle, ErrMsg);
+ fclose(FilePtr);
delLilXML(XmlHandle);
XmlHandle = nullptr;
if (!RootXmlNode)
@@ -2694,6 +2698,7 @@ bool Telescope::HasDefaultScopeConfig()
char ErrMsg[512];

RootXmlNode = readXMLFile(FilePtr, XmlHandle, ErrMsg);
+ fclose(FilePtr);
delLilXML(XmlHandle);
XmlHandle = nullptr;
if (!RootXmlNode)

Read More...