libs/modlib: close fd when error happen
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
This commit is contained in:
parent
3017cc4402
commit
13bdaaec99
@ -196,7 +196,7 @@ static inline FAR void *dlinsert(FAR const char *filename)
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
{
|
{
|
||||||
serr("ERROR: Failed to initialize to load module: %d\n", ret);
|
serr("ERROR: Failed to initialize to load module: %d\n", ret);
|
||||||
goto errout_with_lock;
|
goto errout_with_loadinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a module registry entry to hold the module data */
|
/* Allocate a module registry entry to hold the module data */
|
||||||
@ -296,7 +296,6 @@ errout_with_registry_entry:
|
|||||||
lib_free(modp);
|
lib_free(modp);
|
||||||
errout_with_loadinfo:
|
errout_with_loadinfo:
|
||||||
modlib_uninitialize(&loadinfo);
|
modlib_uninitialize(&loadinfo);
|
||||||
errout_with_lock:
|
|
||||||
modlib_registry_unlock();
|
modlib_registry_unlock();
|
||||||
set_errno(-ret);
|
set_errno(-ret);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -173,8 +173,7 @@ int modlib_initialize(FAR const char *filename,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
berr("ERROR: Bad ELF header: %d\n", ret);
|
berr("ERROR: Bad ELF header: %d\n", ret);
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -61,6 +61,7 @@ int modlib_uninitialize(FAR struct mod_loadinfo_s *loadinfo)
|
|||||||
if (loadinfo->filfd >= 0)
|
if (loadinfo->filfd >= 0)
|
||||||
{
|
{
|
||||||
_NX_CLOSE(loadinfo->filfd);
|
_NX_CLOSE(loadinfo->filfd);
|
||||||
|
loadinfo->filfd = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
Loading…
Reference in New Issue
Block a user