summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy.Li <rongqing.li@windriver.com>2013-02-02 08:18:22 (GMT)
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-03-01 15:38:49 (GMT)
commit87359b141599ab6a916daf55a9cf1a49067fdf4b (patch)
tree7f8a05b9d8c9fd421e7a563d5e9a012ab39e387c
parent546eef26c06f472aa209289738fce2385611f3a6 (diff)
downloadpoky-87359b141599ab6a916daf55a9cf1a49067fdf4b.tar.gz
tcp-wrappers: remove size_t.patch
1. it introduces bug in 64bit big endian process with __GLIBC__, At that condition, size_t is 8byte, and the third parameter of getpeername is socklen_t which is 4 byte. As a result, getpeername sees third parameter is always 0, and can not return right value. The similar program is below, the output is 0, not 9 on PPC64 cpu main() { long aa=9; printf("%d \n", *((int *)&aa)); } 2. The correct fix is to change getpeername/getsockopt/recvfrom.. last parameter type from int to socklen_t, but to simplify, we can remove size_t.patch, since the size of int is same as socklen_t in 32bit/64bit cpu. and size_t.patch only change three places, there are other places which uses int, and work well. 2. Fedora, redhat el4 do not use this patch, but Debian uses it, does not find why this patch is written, maybe it is gcc legency issue which does not exist. (From OE-Core rev: c98fd6606f0e253453bf5478636f6b57fc641377) Signed-off-by: Roy.Li <rongqing.li@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/size_t.patch44
-rw-r--r--meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb3
2 files changed, 1 insertions, 46 deletions
diff --git a/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/size_t.patch b/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/size_t.patch
deleted file mode 100644
index 8373e8a..0000000
--- a/meta/recipes-extended/tcp-wrappers/tcp-wrappers-7.6/size_t.patch
+++ /dev/null
@@ -1,44 +0,0 @@
1Upstream-Status: Backport
2
3diff -ruN tcp_wrappers_7.6.orig/fix_options.c tcp_wrappers_7.6/fix_options.c
4--- tcp_wrappers_7.6.orig/fix_options.c 2003-08-21 03:41:33.000000000 +0200
5+++ tcp_wrappers_7.6/fix_options.c 2003-08-21 03:41:27.000000000 +0200
6@@ -38,7 +38,11 @@
7 #ifdef IP_OPTIONS
8 unsigned char optbuf[BUFFER_SIZE / 3], *cp;
9 char lbuf[BUFFER_SIZE], *lp;
10+#ifdef __GLIBC__
11+ size_t optsize = sizeof(optbuf), ipproto;
12+#else
13 int optsize = sizeof(optbuf), ipproto;
14+#endif
15 struct protoent *ip;
16 int fd = request->fd;
17 unsigned int opt;
18diff -ruN tcp_wrappers_7.6.orig/socket.c tcp_wrappers_7.6/socket.c
19--- tcp_wrappers_7.6.orig/socket.c 2003-08-21 03:41:33.000000000 +0200
20+++ tcp_wrappers_7.6/socket.c 2003-08-21 03:40:51.000000000 +0200
21@@ -90,7 +90,11 @@
22 static struct sockaddr_in client;
23 static struct sockaddr_in server;
24 #endif
25+#ifdef __GLIBC__
26+ size_t len;
27+#else
28 int len;
29+#endif
30 char buf[BUFSIZ];
31 int fd = request->fd;
32
33@@ -421,7 +425,11 @@
34 #else
35 struct sockaddr_in sin;
36 #endif
37+#ifdef __GLIBC__
38+ size_t size = sizeof(sin);
39+#else
40 int size = sizeof(sin);
41+#endif
42
43 /*
44 * Eat up the not-yet received datagram. Some systems insist on a
diff --git a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
index 9b865ba..51ec7b2 100644
--- a/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
+++ b/meta/recipes-extended/tcp-wrappers/tcp-wrappers_7.6.bb
@@ -5,7 +5,7 @@ SECTION = "console/network"
5 5
6LICENSE = "BSD" 6LICENSE = "BSD"
7LIC_FILES_CHKSUM = "file://DISCLAIMER;md5=071bd69cb78b18888ea5e3da5c3127fa" 7LIC_FILES_CHKSUM = "file://DISCLAIMER;md5=071bd69cb78b18888ea5e3da5c3127fa"
8PR ="r9" 8PR ="r10"
9 9
10 10
11PACKAGES = "${PN}-dbg libwrap libwrap-doc libwrap-dev libwrap-staticdev ${PN} ${PN}-doc" 11PACKAGES = "${PN}-dbg libwrap libwrap-doc libwrap-dev libwrap-staticdev ${PN} ${PN}-doc"
@@ -36,7 +36,6 @@ SRC_URI = "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_${PV}.tar.gz \
36 file://safe_finger.patch \ 36 file://safe_finger.patch \
37 file://sig_fix.patch \ 37 file://sig_fix.patch \
38 file://siglongjmp.patch \ 38 file://siglongjmp.patch \
39 file://size_t.patch \
40 file://tcpdchk_libwrapped.patch \ 39 file://tcpdchk_libwrapped.patch \
41 file://ldflags.patch \ 40 file://ldflags.patch \
42 \ 41 \