forked from enlightenment/efl
ecore_file - address issue about false positive of finding a file in ./
it may report an exe is installed if it happens to be in cwd but cwd isnt in path. the "full/relative" path handling case mishandled this. fixes T8678 @fix
This commit is contained in:
parent
53044bf107
commit
56e2e21ae7
|
@ -95,7 +95,10 @@ ecore_file_app_installed(const char *exe)
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
|
|
||||||
if (!exe) return EINA_FALSE;
|
if (!exe) return EINA_FALSE;
|
||||||
if (ecore_file_can_exec(exe)) return EINA_TRUE;
|
if (((!strncmp(exe, "/", 1)) ||
|
||||||
|
(!strncmp(exe, "./", 2)) ||
|
||||||
|
(!strncmp(exe, "../", 3))) &&
|
||||||
|
ecore_file_can_exec(exe)) return EINA_TRUE;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(__ecore_file_path_bin, l, dir)
|
EINA_LIST_FOREACH(__ecore_file_path_bin, l, dir)
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,12 +50,10 @@ static char *
|
||||||
_fallback_runtime_dir(const char *home)
|
_fallback_runtime_dir(const char *home)
|
||||||
{
|
{
|
||||||
char buf[PATH_MAX];
|
char buf[PATH_MAX];
|
||||||
#if defined(HAVE_GETUID)
|
|
||||||
uid_t uid = getuid();
|
|
||||||
#endif
|
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
|
#if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
|
||||||
|
uid_t uid = getuid();
|
||||||
|
|
||||||
if (setuid(geteuid()) != 0)
|
if (setuid(geteuid()) != 0)
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
|
|
Loading…
Reference in New Issue