summaryrefslogtreecommitdiff
path: root/net-analyzer/hydra/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-04-16 13:07:24 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-04-16 13:07:24 +0100
commit0c100b7dd2b30e75b799d806df4ef899fd98e1ea (patch)
tree464c922e949c7e4d5d891fb2cdda5daee5612537 /net-analyzer/hydra/files
parente68d405c5d712af4387159df07e226217bdda049 (diff)
gentoo resync : 16.04.2022
Diffstat (limited to 'net-analyzer/hydra/files')
-rw-r--r--net-analyzer/hydra/files/hydra-9.3-pcre2.patch113
1 files changed, 113 insertions, 0 deletions
diff --git a/net-analyzer/hydra/files/hydra-9.3-pcre2.patch b/net-analyzer/hydra/files/hydra-9.3-pcre2.patch
new file mode 100644
index 000000000000..bb12936254bb
--- /dev/null
+++ b/net-analyzer/hydra/files/hydra-9.3-pcre2.patch
@@ -0,0 +1,113 @@
+https://github.com/vanhauser-thc/thc-hydra/commit/c82e5d51c5595374e6b7801bfc84c26a497d8989.patch
+https://bugs.gentoo.org/838031
+
+From c82e5d51c5595374e6b7801bfc84c26a497d8989 Mon Sep 17 00:00:00 2001
+From: vanhauser-thc <vh@thc.org>
+Date: Tue, 1 Mar 2022 14:56:05 +0100
+Subject: [PATCH] switch to pcre2
+
+--- a/configure
++++ b/configure
+@@ -380,21 +380,21 @@ if [ "X" = "X$CURSES_PATH" -o "X" = "X$CURSES_IPATH" ]; then
+ CURSES_IPATH=""
+ fi
+
+-echo "Checking for pcre (libpcre/pcre.h) ..."
++echo "Checking for pcre2 (libpcre/pcre.h) ..."
+ for i in $LIBDIRS ; do
+ if [ "X" = "X$PCRE_PATH" ]; then
+- if [ -f "$i/libpcre.so" -o -f "$i/libpcre.dylib" -o -f "$i/libpcre.a" ]; then
++ if [ -f "$i/libpcre2-8.so" -o -f "$i/libpcre2-8.dylib" -o -f "$i/libpcre2-8.a" ]; then
+ PCRE_PATH="$i"
+ fi
+ fi
+ if [ "X" = "X$PCRE_PATH" ]; then
+- TMP_LIB=`/bin/ls $i/libpcre.so* 2> /dev/null | grep libpcre.`
++ TMP_LIB=`/bin/ls $i/libpcre2*.so* 2> /dev/null | grep libpcre.`
+ if [ -n "$TMP_LIB" ]; then
+ PCRE_PATH="$i"
+ fi
+ fi
+ if [ "X" = "X$PCRE_PATH" ]; then
+- TMP_LIB=`/bin/ls $i/libpcre.dll* 2> /dev/null | grep libpcre.`
++ TMP_LIB=`/bin/ls $i/libpcre2*.dll* 2> /dev/null | grep libpcre.`
+ if [ -n "$TMP_LIB" ]; then
+ PCRE_PATH="$i"
+ fi
+@@ -402,20 +402,20 @@ for i in $LIBDIRS ; do
+ done
+ for i in $INCDIRS ; do
+ if [ "X" != "X$PCRE_PATH" ]; then
+- if [ -f "$i/pcre.h" ]; then
++ if [ -f "$i/pcre2.h" ]; then
+ PCRE_IPATH="$i"
+ fi
+ fi
+ done
+ if [ "X" != "X$DEBUG" ]; then
+ echo DEBUG: PCRE_PATH=$PCRE_PATH/libpcre
+- echo DEBUG: PCRE_IPATH=$PCRE_IPATH/pcre.h
++ echo DEBUG: PCRE_IPATH=$PCRE_IPATH/pcre2.h
+ fi
+ if [ -n "$PCRE_PATH" -a -n "$PCRE_IPATH" ]; then
+- echo " ... found"
++ echo " ... found"
+ fi
+ if [ "X" = "X$PCRE_PATH" -o "X" = "X$PCRE_IPATH" ]; then
+- echo " ... NOT found, server response checks will be less reliable"
++ echo " ... NOT found, server response checks will be less reliable"
+ PCRE_PATH=""
+ PCRE_IPATH=""
+ fi
+@@ -1649,7 +1649,7 @@ if [ -n "$IDN_PATH" ]; then
+ XLIBS="$XLIBS -lidn"
+ fi
+ if [ -n "$PCRE_PATH" ]; then
+- XLIBS="$XLIBS -lpcre"
++ XLIBS="$XLIBS -lpcre2-8"
+ fi
+ if [ -n "$MYSQL_PATH" ]; then
+ XLIBS="$XLIBS -lmysqlclient"
+--- a/hydra-mod.c
++++ b/hydra-mod.c
+@@ -7,7 +7,8 @@
+ #include <openssl/ssl.h>
+ #endif
+ #ifdef HAVE_PCRE
+-#include <pcre.h>
++#define PCRE2_CODE_UNIT_WIDTH 8
++#include <pcre2.h>
+ #endif
+
+ #define MAX_CONNECT_RETRY 1
+@@ -1291,19 +1292,23 @@ void hydra_set_srcport(int32_t port) { src_port = port; }
+
+ #ifdef HAVE_PCRE
+ int32_t hydra_string_match(char *str, const char *regex) {
+- pcre *re = NULL;
+- int32_t offset_error = 0;
+- const char *error = NULL;
++ pcre2_code *re = NULL;
++ int32_t error_code = 0;
++ PCRE2_SIZE error_offset;
+ int32_t rc = 0;
+
+- re = pcre_compile(regex, PCRE_CASELESS | PCRE_DOTALL, &error, &offset_error, NULL);
++ re = pcre2_compile(regex, PCRE2_ZERO_TERMINATED, PCRE2_CASELESS | PCRE2_DOTALL, &error_code, &error_offset, NULL);
+ if (re == NULL) {
+- fprintf(stderr, "[ERROR] PCRE compilation failed at offset %d: %s\n", offset_error, error);
++ fprintf(stderr, "[ERROR] PCRE compilation failed at offset %d: %d\n", error_offset, error_code);
+ return 0;
+ }
+
+- rc = pcre_exec(re, NULL, str, strlen(str), 0, 0, NULL, 0);
+- if (rc >= 0) {
++ pcre2_match_data *match_data = pcre2_match_data_create_from_pattern(re, NULL);
++ rc = pcre2_match(re, str, PCRE2_ZERO_TERMINATED, 0, 0, match_data, NULL);
++ pcre2_match_data_free(match_data);
++ pcre2_code_free(re);
++
++ if (rc >= 1) {
+ return 1;
+ }
+ return 0;