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; uint32_t colored_output = 1;
char quiet = 0; char quiet = 0;
int32_t old_ssl = 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 #ifdef LIBOPENSSL
SSL *ssl = NULL; 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); extern char *hydra_strrep(char *string, char *oldpiece, char *newpiece);
#ifdef HAVE_PCRE #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 #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; extern int32_t debug;
int32_t verbose; extern int32_t verbose;
int32_t waittime; extern int32_t waittime;
int32_t port; extern int32_t port;
int32_t found; extern int32_t found;
int32_t proxy_count; extern int32_t proxy_count;
int32_t use_proxy; extern int32_t use_proxy;
int32_t selected_proxy; extern int32_t selected_proxy;
char proxy_string_ip[MAX_PROXY_COUNT][36]; extern char proxy_string_ip[MAX_PROXY_COUNT][36];
int32_t proxy_string_port[MAX_PROXY_COUNT]; extern int32_t proxy_string_port[MAX_PROXY_COUNT];
char proxy_string_type[MAX_PROXY_COUNT][10]; extern char proxy_string_type[MAX_PROXY_COUNT][10];
char *proxy_authentication[MAX_PROXY_COUNT]; extern char *proxy_authentication[MAX_PROXY_COUNT];
char *cmdlinetarget; extern char *cmdlinetarget;
typedef int32_t BOOL; typedef int32_t BOOL;