[packages/hydra] - fix building with gcc 10+, rebuild with openssl 3.0.0, rel 5

baggins baggins at pld-linux.org
Sun Oct 17 23:52:10 CEST 2021


commit bd8fda5f0f254b7bf042a85af386cc403aed5d85
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Oct 17 23:51:41 2021 +0200

    - fix building with gcc 10+, rebuild with openssl 3.0.0, rel 5

 gcc10.patch | 967 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 hydra.spec  |   7 +-
 2 files changed, 972 insertions(+), 2 deletions(-)
---
diff --git a/hydra.spec b/hydra.spec
index e91f7c4..3239ab5 100644
--- a/hydra.spec
+++ b/hydra.spec
@@ -5,13 +5,14 @@ Summary:	Parallized network authentication cracker
 Summary(pl.UTF-8):	Zrównoleglony łamacz uwierzytelnień sieciowych
 Name:		hydra
 Version:	8.6
-Release:	4
+Release:	5
 License:	GPL
 Group:		Networking
 Source0:	https://github.com/vanhauser-thc/THC-Archive/blob/master/Tools/%{name}-%{version}.tar.gz?raw=true&/%{name}-%{version}.tar.gz
 # Source0-md5:	5d909cfea627a1f2482b82dfbd64956c
 Patch0:		%{name}-nonsl.patch
 Patch1:		x32.patch
+Patch2:		gcc10.patch
 URL:		http://www.thc.org/thc-hydra/
 BuildRequires:	gtk+2-devel
 BuildRequires:	libssh2-devel
@@ -48,6 +49,7 @@ Wersja GTK+ programu hydra.
 %ifarch x32
 %patch1 -p1
 %endif
+%patch2 -p1
 
 %build
 # this is not autoconf
@@ -57,7 +59,8 @@ WSSL_LIB_PATH=%{_libdir} \
 	--fhs
 
 %{__make} \
-	CC="%{__cc}"
+	CC="%{__cc}" \
+	CFLAGS="%{rpmcflags}"
 
 %install
 rm -rf $RPM_BUILD_ROOT
diff --git a/gcc10.patch b/gcc10.patch
new file mode 100644
index 0000000..89b76c3
--- /dev/null
+++ b/gcc10.patch
@@ -0,0 +1,967 @@
+diff -ur hydra-8.6/hydra-asterisk.c hydra-8.6-gcc10/hydra-asterisk.c
+--- hydra-8.6/hydra-asterisk.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-asterisk.c	2021-10-17 23:50:04.727544648 +0200
+@@ -9,7 +9,7 @@
+ 
+ extern char *HYDRA_EXIT;
+ 
+-char *buf;
++static char *buf;
+ 
+ int32_t start_asterisk(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "\"\"";
+diff -ur hydra-8.6/hydra.c hydra-8.6-gcc10/hydra.c
+--- hydra-8.6/hydra.c	2017-07-21 13:33:16.000000000 +0200
++++ hydra-8.6-gcc10/hydra.c	2021-10-17 23:50:04.727544648 +0200
+@@ -352,19 +352,19 @@
+ #if !defined(ANDROID) && !defined(__BIONIC__)
+ extern int32_t errno;
+ #endif
+-extern int32_t debug;
+-extern int32_t verbose;
+-extern int32_t waittime;
+-extern int32_t port;
+-extern int32_t found;
+-extern int32_t use_proxy;
+-extern int32_t proxy_count;
+-extern int32_t selected_proxy;
+-extern int32_t proxy_string_port[MAX_PROXY_COUNT];
+-extern char proxy_string_ip[MAX_PROXY_COUNT][36];
+-extern char proxy_string_type[MAX_PROXY_COUNT][10];
+-extern char *proxy_authentication[MAX_PROXY_COUNT];
+-extern char *cmdlinetarget;
++int32_t debug;
++int32_t verbose;
++int32_t waittime;
++int32_t port;
++int32_t found;
++int32_t use_proxy;
++int32_t proxy_count;
++int32_t selected_proxy;
++int32_t proxy_string_port[MAX_PROXY_COUNT];
++char proxy_string_ip[MAX_PROXY_COUNT][36];
++char proxy_string_type[MAX_PROXY_COUNT][10];
++char *proxy_authentication[MAX_PROXY_COUNT];
++char *cmdlinetarget;
+ extern char *fe80;
+ 
+ // required global vars
+diff -ur hydra-8.6/hydra-cisco.c hydra-8.6-gcc10/hydra-cisco.c
+--- hydra-8.6/hydra-cisco.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-cisco.c	2021-10-17 23:50:04.727544648 +0200
+@@ -5,11 +5,11 @@
+ #endif
+ 
+ extern char *HYDRA_EXIT;
+-char *buf = NULL;
+ 
+ int32_t start_cisco(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+   char *pass, buffer[300];
++  char *buf = NULL;
+ 
+   if (strlen(pass = hydra_get_next_password()) == 0)
+     pass = empty;
+diff -ur hydra-8.6/hydra-cisco-enable.c hydra-8.6-gcc10/hydra-cisco-enable.c
+--- hydra-8.6/hydra-cisco-enable.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-cisco-enable.c	2021-10-17 23:50:04.727544648 +0200
+@@ -1,11 +1,11 @@
+ #include "hydra-mod.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_cisco_enable(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+   char *pass, buffer[300];
++  char *buf;
+ 
+   if (strlen(pass = hydra_get_next_password()) == 0)
+     pass = empty;
+@@ -63,6 +63,7 @@
+   int32_t myport = PORT_TELNET, mysslport = PORT_TELNET_SSL;
+   char buffer[300];
+   char *login;
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+diff -ur hydra-8.6/hydra-cvs.c hydra-8.6-gcc10/hydra-cvs.c
+--- hydra-8.6/hydra-cvs.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-cvs.c	2021-10-17 23:50:04.727544648 +0200
+@@ -3,13 +3,13 @@
+ extern int32_t hydra_data_ready_timed(int32_t socket, long sec, long usec);
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_cvs(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+   char *login, *pass, buffer[1024], pass2[513];
+   int32_t i;
+   char *directory = miscptr;
++  char *buf;
+ 
+ /* evil cvs encryption sheme... 
+         0 111           P 125           p  58
+diff -ur hydra-8.6/hydra-ftp.c hydra-8.6-gcc10/hydra-ftp.c
+--- hydra-8.6/hydra-ftp.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-ftp.c	2021-10-17 23:50:04.727544648 +0200
+@@ -1,11 +1,11 @@
+ #include "hydra-mod.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_ftp(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "\"\"";
+   char *login, *pass, buffer[510];
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -77,6 +77,7 @@
+ void service_ftp_core(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE * fp, int32_t port, char *hostname, int32_t tls) {
+   int32_t run = 1, next_run = 1, sock = -1;
+   int32_t myport = PORT_FTP, mysslport = PORT_FTP_SSL;
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+diff -ur hydra-8.6/hydra-gtk/src/main.c hydra-8.6-gcc10/hydra-gtk/src/main.c
+--- hydra-8.6/hydra-gtk/src/main.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-gtk/src/main.c	2021-10-17 23:50:04.727544648 +0200
+@@ -18,11 +18,12 @@
+ char *hydra_path2 = "/usr/local/bin/hydra";
+ char *hydra_path3 = "/usr/bin/hydra";
+ 
++GtkWidget *wndMain;
++char *HYDRA_BIN;
++guint message_id;
+ 
+ int main(int argc, char *argv[]) {
+-  extern GtkWidget *wndMain;
+   int i;
+-  extern guint message_id;
+   GtkWidget *output;
+   GtkTextBuffer *outputbuf;
+ 
+diff -ur hydra-8.6/hydra-gtk/src/support.h hydra-8.6-gcc10/hydra-gtk/src/support.h
+--- hydra-8.6/hydra-gtk/src/support.h	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-gtk/src/support.h	2021-10-17 23:50:04.727544648 +0200
+@@ -40,6 +40,6 @@
+ void glade_set_atk_action_description(AtkAction * action, const gchar * action_name, const gchar * description);
+ 
+ 
+-GtkWidget *wndMain;
+-char *HYDRA_BIN;
+-guint message_id;
++extern GtkWidget *wndMain;
++extern char *HYDRA_BIN;
++extern guint message_id;
+diff -ur hydra-8.6/hydra-http-form.c hydra-8.6-gcc10/hydra-http-form.c
+--- hydra-8.6/hydra-http-form.c	2017-07-21 13:31:14.000000000 +0200
++++ hydra-8.6-gcc10/hydra-http-form.c	2021-10-17 23:50:04.730877987 +0200
+@@ -58,7 +58,7 @@
+ #define HEADER_TYPE_DEFAULT_REPL                'd'
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
++static char *buf;
+ char *cond;
+ 
+ typedef struct header_node {
+@@ -83,7 +83,7 @@
+ 
+ extern char *webtarget;
+ extern char *slash;
+-int32_t webport, freemischttpform = 0;
++int32_t form_webport, freemischttpform = 0;
+ char bufferurl[6096+24], cookieurl[6096+24] = "", userheader[6096+24] = "", *url, *variables, *optional1;
+ 
+ #define MAX_REDIRECT 				8
+@@ -616,7 +616,7 @@
+   if (use_proxy == 1 && proxy_authentication[selected_proxy] != NULL) {
+     if (getcookie) {
+       memset(proxy_string, 0, sizeof(proxy_string));
+-      snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, webport, cookieurl);
++      snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, form_webport, cookieurl);
+       http_request = prepare_http_request("GET", proxy_string, NULL, cookie_request);
+       if (hydra_send(s, http_request, strlen(http_request), 0) < 0)
+         return 1;
+@@ -628,7 +628,7 @@
+     // now prepare for the "real" request
+     if (strcmp(type, "POST") == 0) {
+       memset(proxy_string, 0, sizeof(proxy_string));
+-      snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, webport, url);
++      snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, form_webport, url);
+       snprintf(content_length, MAX_CONTENT_LENGTH - 1, "%d", (int32_t) strlen(upd3variables));
+       if (header_exists(&ptr_head, "Content-Length", HEADER_TYPE_DEFAULT))
+         hdrrepv(&ptr_head, "Content-Length", content_length);
+@@ -664,7 +664,7 @@
+       if (getcookie) {
+         //doing a GET to get cookies
+         memset(proxy_string, 0, sizeof(proxy_string));
+-        snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, webport, cookieurl);
++        snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, form_webport, cookieurl);
+         http_request = prepare_http_request("GET", proxy_string, NULL, cookie_request);
+         if (hydra_send(s, http_request, strlen(http_request), 0) < 0)
+           return 1;
+@@ -676,7 +676,7 @@
+       // now prepare for the "real" request
+       if (strcmp(type, "POST") == 0) {
+         memset(proxy_string, 0, sizeof(proxy_string));
+-        snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, webport, url);
++        snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, form_webport, url);
+         snprintf(content_length, MAX_CONTENT_LENGTH - 1, "%d", (int32_t) strlen(upd3variables));
+         if (header_exists(&ptr_head, "Content-Length", HEADER_TYPE_DEFAULT))
+           hdrrepv(&ptr_head, "Content-Length", content_length);
+@@ -863,7 +863,7 @@
+         // proxy with authentication
+         hdrrepv(&ptr_head, "Host", str2);
+         memset(proxy_string, 0, sizeof(proxy_string));
+-        snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, webport, str3);
++        snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, form_webport, str3);
+         normal_request = stringify_headers(&ptr_head);
+         http_request = prepare_http_request("GET", proxy_string, NULL, normal_request);
+       } else {
+@@ -871,7 +871,7 @@
+           // proxy without authentication
+           hdrrepv(&ptr_head, "Host", str2);
+           memset(proxy_string, 0, sizeof(proxy_string));
+-          snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, webport, str3);
++          snprintf(proxy_string, MAX_PROXY_LENGTH - 1, "http://%s:%d%.600s", webtarget, form_webport, str3);
+           normal_request = stringify_headers(&ptr_head);
+           http_request = prepare_http_request("GET", proxy_string, NULL, normal_request);
+         } else {
+@@ -1056,11 +1056,11 @@
+   else if (webtarget == NULL && cmdlinetarget == NULL)
+     webtarget = hydra_address2string(ip);
+   if (port != 0)
+-    webport = port;
++    form_webport = port;
+   else if ((options & OPTION_SSL) == 0)
+-    webport = PORT_HTTP;
++    form_webport = PORT_HTTP;
+   else
+-    webport = PORT_HTTP_SSL;
++    form_webport = PORT_HTTP_SSL;
+ 
+   sprintf(bufferurl, "%.6096s", miscptr);
+   url = bufferurl;
+diff -ur hydra-8.6/hydra-http-proxy-urlenum.c hydra-8.6-gcc10/hydra-http-proxy-urlenum.c
+--- hydra-8.6/hydra-http-proxy-urlenum.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-http-proxy-urlenum.c	2021-10-17 23:50:04.727544648 +0200
+@@ -2,7 +2,6 @@
+ #include "sasl.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ static int32_t http_proxy_auth_mechanism = AUTH_ERROR;
+ 
+ int32_t start_http_proxy_urlenum(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp, char *hostname) {
+@@ -12,6 +11,7 @@
+   char *header = "";            /* XXX TODO */
+   char *ptr;
+   int32_t auth = 0;
++  char *buf;
+ 
+   login = hydra_get_next_login();
+   if (login == NULL || strlen(login) == 0 || strstr(login, "://") == NULL) {
+diff -ur hydra-8.6/hydra-imap.c hydra-8.6-gcc10/hydra-imap.c
+--- hydra-8.6/hydra-imap.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-imap.c	2021-10-17 23:50:04.730877987 +0200
+@@ -2,8 +2,7 @@
+ #include "sasl.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+-int32_t counter;
++int32_t imap_counter;
+ 
+ int32_t imap_auth_mechanism = AUTH_CLEAR;
+ 
+@@ -42,6 +41,7 @@
+ int32_t start_imap(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+   char *login, *pass, buffer[500], buffer2[500], *fooptr;
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -56,7 +56,7 @@
+ 
+   switch (imap_auth_mechanism) {
+   case AUTH_LOGIN:
+-    sprintf(buffer, "%d AUTHENTICATE LOGIN\r\n", counter);
++    sprintf(buffer, "%d AUTHENTICATE LOGIN\r\n", imap_counter);
+     if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
+       return 1;
+     }
+@@ -89,7 +89,7 @@
+     break;
+ 
+   case AUTH_PLAIN:
+-    sprintf(buffer, "%d AUTHENTICATE PLAIN\r\n", counter);
++    sprintf(buffer, "%d AUTHENTICATE PLAIN\r\n", imap_counter);
+     if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
+       return 1;
+     }
+@@ -122,13 +122,13 @@
+       switch (imap_auth_mechanism) {
+ 
+       case AUTH_CRAMMD5:
+-        sprintf(buffer, "%d AUTHENTICATE CRAM-MD5\r\n", counter);
++        sprintf(buffer, "%d AUTHENTICATE CRAM-MD5\r\n", imap_counter);
+         break;
+       case AUTH_CRAMSHA1:
+-        sprintf(buffer, "%d AUTHENTICATE CRAM-SHA1\r\n", counter);
++        sprintf(buffer, "%d AUTHENTICATE CRAM-SHA1\r\n", imap_counter);
+         break;
+       case AUTH_CRAMSHA256:
+-        sprintf(buffer, "%d AUTHENTICATE CRAM-SHA256\r\n", counter);
++        sprintf(buffer, "%d AUTHENTICATE CRAM-SHA256\r\n", imap_counter);
+         break;
+       }
+       if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
+@@ -186,7 +186,7 @@
+     }
+     break;
+   case AUTH_DIGESTMD5:{
+-      sprintf(buffer, "%d AUTHENTICATE DIGEST-MD5\r\n", counter);
++      sprintf(buffer, "%d AUTHENTICATE DIGEST-MD5\r\n", imap_counter);
+ 
+       if (hydra_send(s, buffer, strlen(buffer), 0) < 0)
+         return 1;
+@@ -225,7 +225,7 @@
+       if (rc) {
+         return 3;
+       }
+-      sprintf(buffer, "%d AUTHENTICATE SCRAM-SHA-1\r\n", counter);
++      sprintf(buffer, "%d AUTHENTICATE SCRAM-SHA-1\r\n", imap_counter);
+       if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
+         return 1;
+       }
+@@ -283,7 +283,7 @@
+       unsigned char buf2[4096];
+ 
+       //Send auth request
+-      sprintf(buffer, "%d AUTHENTICATE NTLM\r\n", counter);
++      sprintf(buffer, "%d AUTHENTICATE NTLM\r\n", imap_counter);
+ 
+       if (hydra_send(s, buffer, strlen(buffer), 0) < 0)
+         return 1;
+@@ -324,7 +324,7 @@
+     break;
+   default:
+     //clear authentication
+-    sprintf(buffer, "%d LOGIN \"%.100s\" \"%.100s\"\r\n", counter, login, pass);
++    sprintf(buffer, "%d LOGIN \"%.100s\" \"%.100s\"\r\n", imap_counter, login, pass);
+   }
+ 
+   if (hydra_send(s, buffer, strlen(buffer), 0) < 0) {
+@@ -340,7 +340,7 @@
+     hydra_completed_pair();
+     if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+       return 3;
+-    if (counter == 4)
++    if (imap_counter == 4)
+       return 1;
+     return (2);
+   }
+@@ -357,6 +357,7 @@
+   int32_t run = 1, next_run = 1, sock = -1;
+   int32_t myport = PORT_IMAP, mysslport = PORT_IMAP_SSL, disable_tls = 1;
+   char *buffer1 = "1 CAPABILITY\r\n";
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+@@ -396,7 +397,7 @@
+       /* send capability request */
+       if (hydra_send(sock, buffer1, strlen(buffer1), 0) < 0)
+         exit(-1);
+-      counter = 2;
++      imap_counter = 2;
+       buf = imap_read_server_capacity(sock);
+ 
+       if (buf == NULL) {
+@@ -418,7 +419,7 @@
+         /* check for STARTTLS, if available we may have access to more basic auth methods */
+         if (strstr(buf, "STARTTLS") != NULL) {
+           hydra_send(sock, "2 STARTTLS\r\n", strlen("2 STARTTLS\r\n"), 0);
+-          counter++;
++          imap_counter++;
+           free(buf);
+           buf = hydra_receive_line(sock);
+           if (buf == NULL || (strstr(buf, " NO ") != NULL || strstr(buf, "failed") != NULL || strstr(buf, " BAD ") != NULL)) {
+@@ -439,7 +440,7 @@
+             if (hydra_send(sock, "3 CAPABILITY\r\n", strlen("3 CAPABILITY\r\n"), 0) < 0)
+               hydra_child_exit(2);
+             buf = imap_read_server_capacity(sock);
+-            counter++;
++            imap_counter++;
+             if (buf == NULL)
+               hydra_child_exit(2);
+           }
+@@ -556,7 +557,7 @@
+       break;
+     case 2:                    /* run the cracking function */
+       next_run = start_imap(sock, ip, port, options, miscptr, fp);
+-      counter++;
++      imap_counter++;
+       break;
+     case 3:                    /* clean exit */
+       if (sock >= 0)
+diff -ur hydra-8.6/hydra-irc.c hydra-8.6-gcc10/hydra-irc.c
+--- hydra-8.6/hydra-irc.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-irc.c	2021-10-17 23:50:04.727544648 +0200
+@@ -7,7 +7,6 @@
+ */
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ char buffer[300] = "";
+ int32_t myport = PORT_IRC, mysslport = PORT_IRC_SSL;
+ 
+diff -ur hydra-8.6/hydra-ldap.c hydra-8.6-gcc10/hydra-ldap.c
+--- hydra-8.6/hydra-ldap.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-ldap.c	2021-10-17 23:50:04.730877987 +0200
+@@ -3,8 +3,7 @@
+ 
+ extern char *HYDRA_EXIT;
+ 
+-unsigned char *buf;
+-int32_t counter;
++int32_t ldap_counter;
+ int32_t tls_required = 0;
+ 
+ int32_t start_ldap(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp, char *hostname, char version, int32_t auth_method) {
+@@ -13,6 +12,7 @@
+   unsigned char buffer[512];
+   int32_t length = 0;
+   int32_t ldap_auth_mechanism = auth_method;
++  unsigned char *buf;
+ 
+   /*
+      The LDAP "simple" method has three modes of operation:
+@@ -53,7 +53,7 @@
+ 
+   buffer[2] = 2;
+   buffer[3] = 1;
+-  buffer[4] = counter % 256;
++  buffer[4] = ldap_counter % 256;
+ 
+   buffer[5] = 96;
+   buffer[6] = length - 7;
+@@ -126,7 +126,7 @@
+     sasl_cram_md5(fooptr, pass, ptr);
+     if (fooptr == NULL)
+       return 1;
+-    counter++;
++    ldap_counter++;
+     if (strstr(miscptr, "^USER^") != NULL) {
+       miscptr = hydra_strrep(miscptr, "^USER^", login);
+     }
+@@ -139,7 +139,7 @@
+ 
+     buffer[2] = 2;
+     buffer[3] = 1;
+-    buffer[4] = counter % 256;
++    buffer[4] = ldap_counter % 256;
+ 
+     buffer[5] = 96;
+     buffer[6] = length - 7;
+@@ -174,7 +174,7 @@
+ 
+       ptr = strstr((char *) buf, "realm=");
+ 
+-      counter++;
++      ldap_counter++;
+       if (strstr(miscptr, "^USER^") != NULL) {
+         miscptr = hydra_strrep(miscptr, "^USER^", login);
+       }
+@@ -211,7 +211,7 @@
+       ind++;
+       buffer[ind] = 1;
+       ind++;
+-      buffer[ind] = counter % 256;
++      buffer[ind] = ldap_counter % 256;
+       ind++;
+       buffer[ind] = 96;         /*0x60 */
+       ind++;
+@@ -354,6 +354,7 @@
+ void service_ldap(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE * fp, int32_t port, char *hostname, char version, int32_t auth_method) {
+   int32_t run = 1, next_run = 1, sock = -1;
+   int32_t myport = PORT_LDAP, mysslport = PORT_LDAP_SSL;
++  unsigned char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+@@ -380,7 +381,7 @@
+           hydra_report(stderr, "[ERROR] Child with pid %d terminating, can not connect\n", (int32_t) getpid());
+         hydra_child_exit(1);
+       }
+-      counter = 1;
++      ldap_counter = 1;
+       if (tls_required) {
+         /* Start TLS operation OID = 1.3.6.1.4.1.1466.20037 according to RFC 2830 */
+         char confidentiality_required[] = "\x30\x1d\x02\x01\x01\x77\x18\x80\x16\x31\x2e\x33\x2e\x36\x2e\x31\x2e\x34\x2e\x31\x2e\x31\x34\x36\x36\x2e\x32\x30\x30\x33\x37";
+@@ -399,7 +400,7 @@
+           } else {
+             if (verbose)
+               hydra_report(stderr, "[VERBOSE] TLS connection done\n");
+-            counter++;
++            ldap_counter++;
+           }
+         } else {
+           hydra_report(stderr, "[ERROR] Can't use TLS %s\n", buf);
+@@ -410,7 +411,7 @@
+       break;
+     case 2:                    /* run the cracking function */
+       next_run = start_ldap(sock, ip, port, options, miscptr, fp, hostname, version, auth_method);
+-      counter++;
++      ldap_counter++;
+       break;
+     case 3:                    /* clean exit */
+       if (sock >= 0)
+diff -ur hydra-8.6/hydra-mod.c hydra-8.6-gcc10/hydra-mod.c
+--- hydra-8.6/hydra-mod.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-mod.c	2021-10-17 23:50:04.727544648 +0200
+@@ -463,7 +463,7 @@
+   BIGNUM *n;
+   n = BN_new();
+   RSA_get0_key(rsa, &n, NULL, NULL);
+-  ok = BN_zero(n);
++  BN_zero(n);
+ #else
+   if (rsa->n == 0)
+     ok = 1;
+diff -ur hydra-8.6/hydra-mod.h hydra-8.6-gcc10/hydra-mod.h
+--- hydra-8.6/hydra-mod.h	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-mod.h	2021-10-17 23:50:04.727544648 +0200
+@@ -45,19 +45,19 @@
+ #endif
+ 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;
+ 
+diff -ur hydra-8.6/hydra-mssql.c hydra-8.6-gcc10/hydra-mssql.c
+--- hydra-8.6/hydra-mssql.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-mssql.c	2021-10-17 23:50:04.727544648 +0200
+@@ -3,7 +3,6 @@
+ #define MSLEN 30
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ unsigned char p_hdr[] =
+   "\x02\x00\x02\x00\x00\x00\x02\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00";
+@@ -93,13 +92,11 @@
+   if (ret > 10 && buffer[8] == '\xe3') {
+     hydra_report_found_host(port, ip, "mssql", fp);
+     hydra_completed_pair_found();
+-    free(buf);
+     if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+       return 2;
+     return 1;
+   }
+ 
+-  free(buf);
+   hydra_completed_pair();
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+     return 2;
+diff -ur hydra-8.6/hydra-nntp.c hydra-8.6-gcc10/hydra-nntp.c
+--- hydra-8.6/hydra-nntp.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-nntp.c	2021-10-17 23:50:04.727544648 +0200
+@@ -13,7 +13,6 @@
+ int32_t nntp_auth_mechanism = AUTH_CLEAR;
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ char *nntp_read_server_capacity(int32_t sock) {
+   char *ptr = NULL;
+@@ -51,6 +50,7 @@
+   char *empty = "\"\"";
+   char *login, *pass, buffer[500], buffer2[500], *fooptr;
+   int32_t i = 1;
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -270,6 +270,7 @@
+   int32_t i = 0, run = 1, next_run = 1, sock = -1;
+   int32_t myport = PORT_NNTP, mysslport = PORT_NNTP_SSL, disable_tls = 0;
+   char *buffer1 = "CAPABILITIES\r\n";
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+diff -ur hydra-8.6/hydra-oracle-listener.c hydra-8.6-gcc10/hydra-oracle-listener.c
+--- hydra-8.6/hydra-oracle-listener.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-oracle-listener.c	2021-10-17 23:50:04.730877987 +0200
+@@ -22,8 +22,7 @@
+ #define HASHSIZE 17
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+-unsigned char *hash;
++unsigned char *ora_hash_pass;
+ int32_t sid_mechanism = AUTH_PLAIN;
+ 
+ int32_t initial_permutation(unsigned char **result, char *p_str, int32_t *sz) {
+@@ -138,7 +137,7 @@
+ }
+ 
+ int32_t ora_hash_password(char *pass) {
+-  // secret hash function comes here, and written to char *hash
++  // secret hash function comes here, and written to char *ora_hash_pass
+   int32_t siz = 0;
+   unsigned char *desresult;
+   unsigned char *result;
+@@ -172,7 +171,7 @@
+     return 1;
+   }
+ 
+-  memcpy(hash, result, HASHSIZE);
++  memcpy(ora_hash_pass, result, HASHSIZE);
+   free(desresult);
+   free(result);
+ 
+@@ -192,6 +191,7 @@
+   char connect_string[200];
+   char buffer2[260];
+   int32_t siz = 0;
++  char *buf;
+ 
+   memset(connect_string, 0, sizeof(connect_string));
+   memset(buffer2, 0, sizeof(buffer2));
+@@ -200,22 +200,22 @@
+     pass = empty;
+ 
+   if (sid_mechanism == AUTH_PLAIN) {
+-    if ((hash = malloc(HASHSIZE)) == NULL) {
++    if ((ora_hash_pass = malloc(HASHSIZE)) == NULL) {
+       hydra_report(stderr, "[ERROR] Can't allocate memory\n");
+       return 1;
+     }
+-    memset(hash, 0, HASHSIZE);
++    memset(ora_hash_pass, 0, HASHSIZE);
+     if (ora_hash_password(pass)) {
+       hydra_report(stderr, "[ERROR] generating Oracle hash\n");
+-      free(hash);
++      free(ora_hash_pass);
+       return 1;
+     }
+-    pass = (char *) hash;
++    pass = (char *) ora_hash_pass;
+   }
+   snprintf(connect_string, sizeof(connect_string), "(DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=))(COMMAND=reload)(PASSWORD=%s)(SERVICE=)(VERSION=169869568)))", pass);
+ 
+-  if (hash != NULL)
+-    free(hash);
++  if (ora_hash_pass != NULL)
++    free(ora_hash_pass);
+   if (verbose)
+     hydra_report(stderr, "[VERBOSE] using connectiong string: %s\n", connect_string);
+ 
+diff -ur hydra-8.6/hydra-oracle-sid.c hydra-8.6-gcc10/hydra-oracle-sid.c
+--- hydra-8.6/hydra-oracle-sid.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-oracle-sid.c	2021-10-17 23:50:04.730877987 +0200
+@@ -19,7 +19,6 @@
+ #define HASHSIZE 16
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ unsigned char *hash;
+ 
+ 
+@@ -40,6 +39,7 @@
+   char connect_string[200];
+   char buffer2[260];
+   int32_t siz = 0;
++  char *buf;
+ 
+   memset(connect_string, 0, sizeof(connect_string));
+   memset(buffer2, 0, sizeof(buffer2));
+diff -ur hydra-8.6/hydra-pcnfs.c hydra-8.6-gcc10/hydra-pcnfs.c
+--- hydra-8.6/hydra-pcnfs.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-pcnfs.c	2021-10-17 23:50:04.730877987 +0200
+@@ -3,7 +3,6 @@
+ /* pcnfs stuff copied from prout.c */
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ #define LEN_HDR_RPC	24
+ #define LEN_AUTH_UNIX   72+12
+@@ -37,6 +36,7 @@
+   char *empty = "";
+   char *login, *pass, buffer[LEN_HDR_RPC + LEN_AUTH_UNIX + LEN_HDR_PCN_AUTH];
+   char *ptr, *pkt = buffer;
++  char *buf;
+ 
+   unsigned long *authp;
+   struct timeval tv;
+diff -ur hydra-8.6/hydra-pop3.c hydra-8.6-gcc10/hydra-pop3.c
+--- hydra-8.6/hydra-pop3.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-pop3.c	2021-10-17 23:50:04.730877987 +0200
+@@ -13,7 +13,6 @@
+ } pool;
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ char apop_challenge[300] = "";
+ pool *plist = NULL, *p = NULL;
+ 
+@@ -120,6 +119,7 @@
+ int32_t start_pop3(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "\"\"";
+   char *login, *pass, buffer[500], buffer2[500], *fooptr;
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -416,6 +416,7 @@
+ void service_pop3(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE * fp, int32_t port, char *hostname) {
+   int32_t run = 1, next_run = 1, sock = -1;
+   char *ptr = NULL;
++  char *buf;
+ 
+   //extract data from the pool, ip is the key
+   if (plist == NULL)
+@@ -520,6 +521,7 @@
+   char *capa_str = "CAPA\r\n";
+   char *quit_str = "QUIT\r\n";
+   pool p;
++  char *buf;
+ 
+   p.pop3_auth_mechanism = AUTH_CLEAR;
+   p.disable_tls = 1;
+diff -ur hydra-8.6/hydra-redis.c hydra-8.6-gcc10/hydra-redis.c
+--- hydra-8.6/hydra-redis.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-redis.c	2021-10-17 23:50:04.730877987 +0200
+@@ -1,11 +1,11 @@
+ #include "hydra-mod.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_redis(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *pass, buffer[510];
+   char *empty = "";
++  char *buf;
+ 
+   if (strlen(pass = hydra_get_next_password()) == 0)
+     pass = empty;
+@@ -133,6 +133,7 @@
+   int32_t sock = -1;
+   int32_t myport = PORT_REDIS, mysslport = PORT_REDIS_SSL;
+   char buffer[] = "*1\r\n$4\r\nping\r\n";
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if ((options & OPTION_SSL) == 0) {
+diff -ur hydra-8.6/hydra-rexec.c hydra-8.6-gcc10/hydra-rexec.c
+--- hydra-8.6/hydra-rexec.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-rexec.c	2021-10-17 23:50:04.730877987 +0200
+@@ -5,7 +5,6 @@
+ #define COMMAND "/bin/ls /"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_rexec(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+diff -ur hydra-8.6/hydra-rlogin.c hydra-8.6-gcc10/hydra-rlogin.c
+--- hydra-8.6/hydra-rlogin.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-rlogin.c	2021-10-17 23:50:04.730877987 +0200
+@@ -12,7 +12,6 @@
+ #define TERM "vt100/9600"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_rlogin(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+diff -ur hydra-8.6/hydra-rpcap.c hydra-8.6-gcc10/hydra-rpcap.c
+--- hydra-8.6/hydra-rpcap.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-rpcap.c	2021-10-17 23:50:04.730877987 +0200
+@@ -4,11 +4,11 @@
+ #include "hydra-mod.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_rpcap(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+   char *login, *pass, buffer[1024];
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -128,6 +128,7 @@
+   int32_t sock = -1;
+   int32_t myport = PORT_RPCAP, mysslport = PORT_RPCAP_SSL;
+   char buffer[] = "\x00\x08\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00";
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if ((options & OPTION_SSL) == 0) {
+diff -ur hydra-8.6/hydra-rsh.c hydra-8.6-gcc10/hydra-rsh.c
+--- hydra-8.6/hydra-rsh.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-rsh.c	2021-10-17 23:50:04.730877987 +0200
+@@ -11,7 +11,6 @@
+ */
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_rsh(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+diff -ur hydra-8.6/hydra-rtsp.c hydra-8.6-gcc10/hydra-rtsp.c
+--- hydra-8.6/hydra-rtsp.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-rtsp.c	2021-10-17 23:50:04.730877987 +0200
+@@ -12,7 +12,6 @@
+ #include "sasl.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ char packet[500];
+ char packet2[500];
+ 
+diff -ur hydra-8.6/hydra-smtp-enum.c hydra-8.6-gcc10/hydra-smtp-enum.c
+--- hydra-8.6/hydra-smtp-enum.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-smtp-enum.c	2021-10-17 23:50:04.730877987 +0200
+@@ -14,7 +14,6 @@
+ #include "hydra-mod.h"
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ char *err = NULL;
+ int32_t tosent = 0;
+ 
+@@ -27,6 +26,7 @@
+ int32_t start_smtp_enum(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+   char *login, *pass, buffer[500];
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -154,6 +154,7 @@
+   int32_t run = 1, next_run = 1, sock = -1, i = 0;
+   int32_t myport = PORT_SMTP, mysslport = PORT_SMTP_SSL;
+   char *buffer = "HELO hydra\r\n";
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+diff -ur hydra-8.6/hydra-socks5.c hydra-8.6-gcc10/hydra-socks5.c
+--- hydra-8.6/hydra-socks5.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-socks5.c	2021-10-17 23:50:04.730877987 +0200
+@@ -10,7 +10,6 @@
+ */
+ 
+ extern char *HYDRA_EXIT;
+-unsigned char *buf;
+ 
+ int32_t fail_cnt;
+ 
+@@ -18,6 +17,7 @@
+   char *empty = "";
+   char *login, *pass, buffer[300];
+   int32_t pport, fud = 0;
++  unsigned char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+diff -ur hydra-8.6/hydra-teamspeak.c hydra-8.6-gcc10/hydra-teamspeak.c
+--- hydra-8.6/hydra-teamspeak.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-teamspeak.c	2021-10-17 23:50:04.730877987 +0200
+@@ -36,7 +36,6 @@
+ extern int32_t hydra_data_ready_timed(int32_t socket, long sec, long usec);
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ 
+ int32_t start_teamspeak(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+diff -ur hydra-8.6/hydra-telnet.c hydra-8.6-gcc10/hydra-telnet.c
+--- hydra-8.6/hydra-telnet.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-telnet.c	2021-10-17 23:50:04.730877987 +0200
+@@ -2,13 +2,13 @@
+ #include <arpa/telnet.h>
+ 
+ extern char *HYDRA_EXIT;
+-char *buf;
+ int32_t no_line_mode;
+ 
+ int32_t start_telnet(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "";
+   char *login, *pass, buffer[300];
+   int32_t i = 0;
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -99,6 +99,7 @@
+ void service_telnet(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE * fp, int32_t port, char *hostname) {
+   int32_t run = 1, next_run = 1, sock = -1, fck;
+   int32_t myport = PORT_TELNET, mysslport = PORT_TELNET_SSL;
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
+diff -ur hydra-8.6/hydra-vmauthd.c hydra-8.6-gcc10/hydra-vmauthd.c
+--- hydra-8.6/hydra-vmauthd.c	2017-07-21 13:26:40.000000000 +0200
++++ hydra-8.6-gcc10/hydra-vmauthd.c	2021-10-17 23:50:04.730877987 +0200
+@@ -8,11 +8,11 @@
+ 
+ extern char *HYDRA_EXIT;
+ 
+-char *buf;
+ 
+ int32_t start_vmauthd(int32_t s, char *ip, int32_t port, unsigned char options, char *miscptr, FILE * fp) {
+   char *empty = "\"\"";
+   char *login, *pass, buffer[300];
++  char *buf;
+ 
+   if (strlen(login = hydra_get_next_login()) == 0)
+     login = empty;
+@@ -68,6 +68,7 @@
+ void service_vmauthd(char *ip, int32_t sp, unsigned char options, char *miscptr, FILE * fp, int32_t port, char *hostname) {
+   int32_t run = 1, next_run = 1, sock = -1;
+   int32_t myport = PORT_VMAUTHD, mysslport = PORT_VMAUTHD_SSL;
++  char *buf;
+ 
+   hydra_register_socket(sp);
+   if (memcmp(hydra_get_next_pair(), &HYDRA_EXIT, sizeof(HYDRA_EXIT)) == 0)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/hydra.git/commitdiff/bd8fda5f0f254b7bf042a85af386cc403aed5d85



More information about the pld-cvs-commit mailing list