hydra-mod: Fix various global declarations

With GCC 10 -fno-common is enabled by default[0] which causes linking
problems that might look like this[1]:

ld: hydra-pcnfs.o:(.bss+0x0): multiple definition of `buf';
hydra-vnc.o:(.bss+0x0): first defined here

Declare these variables as extern in hydra-mod.h and define them in
hydra-mod.c.

[0] https://gcc.gnu.org/gcc-10/porting_to.html#common
[1] https://bugs.gentoo.org/706416
This commit is contained in:
Jeroen Roovers 2020-01-26 17:11:23 +01:00
commit 0c6492a484
2 changed files with 28 additions and 15 deletions

View file

@ -48,6 +48,19 @@ char ipstring[64];
uint32_t colored_output = 1;
char quiet = 0;
int32_t old_ssl = 0;
int32_t debug;
char *proxy_authentication[MAX_PROXY_COUNT];
int32_t proxy_count;
char proxy_string_ip[MAX_PROXY_COUNT][36];
char proxy_string_type[MAX_PROXY_COUNT][10];
int32_t proxy_string_port[MAX_PROXY_COUNT];
int32_t selected_proxy;
int32_t verbose;
int32_t waittime;
int32_t use_proxy;
int32_t port;
char *cmdlinetarget;
int32_t found;
#ifdef LIBOPENSSL
SSL *ssl = NULL;

View file

@ -49,23 +49,23 @@ extern int32_t hydra_memsearch(char *haystack, int32_t hlen, char *needle, int32
extern char *hydra_strrep(char *string, char *oldpiece, char *newpiece);
#ifdef HAVE_PCRE
int32_t hydra_string_match(char *str, const char *regex);
extern int32_t hydra_string_match(char *str, const char *regex);
#endif
char *hydra_string_replace(const char *string, const char *substr, const char *replacement);
extern char *hydra_string_replace(const char *string, const char *substr, const char *replacement);
int32_t debug;
int32_t verbose;
int32_t waittime;
int32_t port;
int32_t found;
int32_t proxy_count;
int32_t use_proxy;
int32_t selected_proxy;
char proxy_string_ip[MAX_PROXY_COUNT][36];
int32_t proxy_string_port[MAX_PROXY_COUNT];
char proxy_string_type[MAX_PROXY_COUNT][10];
char *proxy_authentication[MAX_PROXY_COUNT];
char *cmdlinetarget;
extern int32_t debug;
extern int32_t verbose;
extern int32_t waittime;
extern int32_t port;
extern int32_t found;
extern int32_t proxy_count;
extern int32_t use_proxy;
extern int32_t selected_proxy;
extern char proxy_string_ip[MAX_PROXY_COUNT][36];
extern int32_t proxy_string_port[MAX_PROXY_COUNT];
extern char proxy_string_type[MAX_PROXY_COUNT][10];
extern char *proxy_authentication[MAX_PROXY_COUNT];
extern char *cmdlinetarget;
typedef int32_t BOOL;