diff options
-rw-r--r-- | community/libnids/PKGBUILD | 11 | ||||
-rw-r--r-- | community/libnids/libnids-1.24-inline.patch | 46 |
2 files changed, 57 insertions, 0 deletions
diff --git a/community/libnids/PKGBUILD b/community/libnids/PKGBUILD new file mode 100644 index 00000000..7be0ea3e --- /dev/null +++ b/community/libnids/PKGBUILD @@ -0,0 +1,11 @@ +# libndis defines some functions inline, so they are not in the shared library, +# needed for instance for dsniff +# see https://src.fedoraproject.org/cgit/rpms/libnids.git/commit/?id=ecafb692f20e0acad555f66c3cc1646997a82dae + +source+=('libnids-1.24-inline.patch') +sha256sums+=('0c2b0426a6bab56641f3579dca266ea8d38e1834230154a1be9bbe2f66e2df5e') + +prepare() { + cd $pkgname-$pkgver + patch -Np1 -i "$srcdir/libnids-1.24-inline.patch" +} diff --git a/community/libnids/libnids-1.24-inline.patch b/community/libnids/libnids-1.24-inline.patch new file mode 100644 index 00000000..000c69bc --- /dev/null +++ b/community/libnids/libnids-1.24-inline.patch @@ -0,0 +1,46 @@ +diff --git a/libnids-1.24-inline.patch b/libnids-1.24-inline.patch +new file mode 100644 +index 0000000..e3a6cce +--- /dev/null ++++ b/libnids-1.24-inline.patch +@@ -0,0 +1,40 @@ ++Patch by Robert Scheck <robert@fedoraproject.org> for libnids <= 1.24 which ++avoids making the functions ip_fast_csum, ip_compute_csum, my_tcp_check and ++my_udp_check inline, see https://github.com/aol/moloch/issues/440 as well. ++ ++--- libnids-1.24/src/checksum.c 2010-02-26 11:58:41.000000000 +0100 +++++ libnids-1.24/src/checksum.c.inline 2016-02-09 14:08:38.000000000 +0100 ++@@ -120,7 +120,7 @@ ++ By Jorge Cwik <jorge@laser.satlink.net>, adapted for linux by Arnt ++ Gulbrandsen. ++ */ ++-inline u_short ip_fast_csum(u_char * iph, u_int ihl) +++u_short ip_fast_csum(u_char * iph, u_int ihl) ++ { ++ u_int sum; ++ if (dontchksum(((struct ip*)iph)->ip_src.s_addr)) ++@@ -191,13 +191,13 @@ ++ this routine is used for miscellaneous IP-like checksums, mainly in ++ icmp.c ++ */ ++-inline u_short +++u_short ++ ip_compute_csum(u_char * buff, int len) ++ { ++ return (csum_fold(csum_partial(buff, len, 0))); ++ } ++ ++-inline u_short +++u_short ++ my_tcp_check(struct tcphdr *th, int len, u_int saddr, u_int daddr) ++ { ++ if (dontchksum(saddr)) ++@@ -205,7 +205,7 @@ ++ return csum_tcpudp_magic(saddr, daddr, len, IPPROTO_TCP, ++ csum_partial((u_char *)th, len, 0)); ++ } ++-inline u_short +++u_short ++ my_udp_check(void *u, int len, u_int saddr, u_int daddr) ++ { ++ if (dontchksum(saddr)) |