Prevent name collisions with system glob (bz#2463)
Move glob.h from includes.h to the only caller (sftp) and override the names for the symbols. This prevents name collisions with the system glob in the case where something other than ssh uses it (eg kerberos). With jjelen at redhat.com, ok djm@
This commit is contained in:
parent
86c10dbbef
commit
8db134e7f4
|
@ -850,4 +850,11 @@ struct winsize {
|
|||
# endif /* gcc version */
|
||||
#endif /* __predict_true */
|
||||
|
||||
#if defined(HAVE_GLOB_H) && defined(GLOB_HAS_ALTDIRFUNC) && \
|
||||
defined(GLOB_HAS_GL_MATCHC) && defined(GLOB_HAS_GL_STATV) && \
|
||||
defined(HAVE_DECL_GLOB_NOMATCH) && HAVE_DECL_GLOB_NOMATCH != 0 && \
|
||||
!defined(BROKEN_GLOB)
|
||||
# define USE_SYSTEM_GLOB
|
||||
#endif
|
||||
|
||||
#endif /* _DEFINES_H */
|
||||
|
|
|
@ -32,12 +32,6 @@
|
|||
#ifdef HAVE_BSTRING_H
|
||||
# include <bstring.h>
|
||||
#endif
|
||||
#if defined(HAVE_GLOB_H) && defined(GLOB_HAS_ALTDIRFUNC) && \
|
||||
defined(GLOB_HAS_GL_MATCHC) && defined(GLOB_HAS_GL_STATV) && \
|
||||
defined(HAVE_DECL_GLOB_NOMATCH) && HAVE_DECL_GLOB_NOMATCH != 0 && \
|
||||
!defined(BROKEN_GLOB)
|
||||
# include <glob.h>
|
||||
#endif
|
||||
#ifdef HAVE_ENDIAN_H
|
||||
# include <endian.h>
|
||||
#endif
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
*/
|
||||
|
||||
#include "includes.h"
|
||||
#include "glob.h"
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
|
|
@ -42,11 +42,15 @@
|
|||
!defined(HAVE_DECL_GLOB_NOMATCH) || HAVE_DECL_GLOB_NOMATCH == 0 || \
|
||||
defined(BROKEN_GLOB)
|
||||
|
||||
#ifndef _GLOB_H_
|
||||
#define _GLOB_H_
|
||||
#ifndef _COMPAT_GLOB_H_
|
||||
#define _COMPAT_GLOB_H_
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
# define glob_t _ssh_compat_glob_t
|
||||
# define glob(a, b, c, d) _ssh__compat_glob(a, b, c, d)
|
||||
# define globfree(a) _ssh__compat_globfree(a)
|
||||
|
||||
struct stat;
|
||||
typedef struct {
|
||||
int gl_pathc; /* Count of total paths so far. */
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
/* OpenBSD function replacements */
|
||||
#include "base64.h"
|
||||
#include "sigact.h"
|
||||
#include "glob.h"
|
||||
#include "readpassphrase.h"
|
||||
#include "vis.h"
|
||||
#include "getrrsetbyname.h"
|
||||
|
|
|
@ -21,6 +21,12 @@
|
|||
#ifndef _SFTP_CLIENT_H
|
||||
#define _SFTP_CLIENT_H
|
||||
|
||||
#ifdef USE_SYSTEM_GLOB
|
||||
# include <glob.h>
|
||||
#else
|
||||
# include "openbsd-compat/glob.h"
|
||||
#endif
|
||||
|
||||
typedef struct SFTP_DIRENT SFTP_DIRENT;
|
||||
|
||||
struct SFTP_DIRENT {
|
||||
|
|
Loading…
Reference in New Issue