From: RĂ©mi Denis-Courmont Date: Sat, 10 Apr 2010 10:34:22 +0000 (+0300) Subject: fdopendir does not imply openat (fix #3505) X-Git-Tag: 1.1.0-pre1~69 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=2c54f289115bc8c0b48bfd5f08b405b778a518ae;hp=9e8bf20982084a38821186c7396767dea16708af;p=vlc fdopendir does not imply openat (fix #3505) --- diff --git a/configure.ac b/configure.ac index 1f4875f316..4dcf24032c 100644 --- a/configure.ac +++ b/configure.ac @@ -548,7 +548,7 @@ dnl Check for system libs needed need_libc=false dnl Check for usual libc functions -AC_CHECK_FUNCS([ctime_r daemon fcntl fdopendir fork getenv getpwuid_r gettimeofday isatty lstat memalign posix_fadvise posix_madvise posix_memalign putenv setenv setlocale stricmp strnicmp tdestroy uselocale]) +AC_CHECK_FUNCS([ctime_r daemon fcntl fdopendir fork getenv getpwuid_r gettimeofday isatty lstat memalign openat posix_fadvise posix_madvise posix_memalign putenv setenv setlocale stricmp strnicmp tdestroy uselocale]) AC_REPLACE_FUNCS([asprintf atof atoll getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab vasprintf]) AC_CHECK_FUNCS(fdatasync,, [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.]) diff --git a/modules/access/directory.c b/modules/access/directory.c index 05155ff4a5..f2b8aec079 100644 --- a/modules/access/directory.c +++ b/modules/access/directory.c @@ -76,7 +76,7 @@ struct directory_t #ifndef WIN32 struct stat st; #endif -#ifndef HAVE_FDOPENDIR +#ifndef HAVE_OPENAT char *path; #endif }; @@ -175,7 +175,7 @@ void DirClose( vlc_object_t * p_this ) p_sys->current = current->parent; closedir (current->handle); free (current->uri); -#ifndef HAVE_FDOPENDIR +#ifndef HAVE_OPENAT free (current->path); #endif free (current); @@ -237,7 +237,7 @@ block_t *DirBlock (access_t *p_access) } current->parent = NULL; current->handle = p_sys->handle; -#ifndef HAVE_FDOPENDIR +#ifndef HAVE_OPENAT current->path = strdup (p_access->psz_path); #endif current->uri = p_sys->uri; @@ -260,7 +260,7 @@ block_t *DirBlock (access_t *p_access) closedir (current->handle); p_sys->current = current->parent; free (current->uri); -#ifndef HAVE_FDOPENDIR +#ifndef HAVE_OPENAT free (current->path); #endif free (current); @@ -315,7 +315,7 @@ block_t *DirBlock (access_t *p_access) } DIR *handle; -#ifdef HAVE_FDOPENDIR +#ifdef HAVE_OPENAT int fd = vlc_openat (dirfd (current->handle), entry, O_RDONLY); if (fd != -1) { diff --git a/modules/access/file.c b/modules/access/file.c index 1117dfe443..0e48555406 100644 --- a/modules/access/file.c +++ b/modules/access/file.c @@ -145,7 +145,6 @@ int Open( vlc_object_t *p_this ) if (*end == '\0') fd = vlc_dup (oldfd); -#ifdef HAVE_FDOPENDIR else if (*end == '/' && end > path) { char *name = decode_URI_duplicate (end - 1); @@ -156,7 +155,6 @@ int Open( vlc_object_t *p_this ) free (name); } } -#endif } else { diff --git a/src/text/filesystem.c b/src/text/filesystem.c index 66111acfa8..c270c86219 100644 --- a/src/text/filesystem.c +++ b/src/text/filesystem.c @@ -225,7 +225,7 @@ int vlc_openat (int dir, const char *filename, int flags, ...) return -1; } -#ifdef HAVE_FDOPENDIR +#ifdef HAVE_OPENAT int fd = openat (dir, local_name, flags, mode); # ifdef HAVE_FCNTL if (fd != -1)