about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--posix/rxspencer/tests6
-rw-r--r--posix/tst-rxspencer.c2
-rw-r--r--sysdeps/unix/sysv/linux/check_pf.c2
-rw-r--r--sysdeps/unix/sysv/linux/ifaddrs.c3
5 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b146509d2a..8263ae002e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-11-04  Ulrich Drepper  <drepper@redhat.com>
+
+	* sysdeps/unix/sysv/linux/ifaddrs.c: Make sure it's the kernel who
+	sends the netlink data.
+	* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
+
 2003-11-13  Jakub Jelinek  <jakub@redhat.com>
 
 	* posix/regcomp.c (optimize_utf8): Optimize even if SIMPLE_BRACKET
diff --git a/posix/rxspencer/tests b/posix/rxspencer/tests
index acd4623c74..8e93133d24 100644
--- a/posix/rxspencer/tests
+++ b/posix/rxspencer/tests
@@ -295,7 +295,8 @@ a[[.x.		&C	EBRACK
 a[[.x.]		&C	EBRACK
 a[[.x.]]	&	ax	ax
 a[[.x,.]]	&C	ECOLLATE
-# XXX Doesn't work yet.
+# This test is invalid.  "one" is no collating symbol in any standardized
+# locale.
 # a[[.one.]]b	&	a1b	a1b
 a[[.notdef.]]b	&C	ECOLLATE
 a[[.].]]b	&	a]b	a]b
@@ -327,7 +328,8 @@ a[[=b		&C	EBRACK
 a[[=b=		&C	EBRACK
 a[[=b=]		&C	EBRACK
 a[[=b,=]]	&C	ECOLLATE
-# XXX Doesn't work yet.
+# This test is invalid.  "one" is no collating symbol in any standardized
+# locale.
 #a[[=one=]]b	&	a1b	a1b
 
 # complexities
diff --git a/posix/tst-rxspencer.c b/posix/tst-rxspencer.c
index eed3e1820b..a04791c1cc 100644
--- a/posix/tst-rxspencer.c
+++ b/posix/tst-rxspencer.c
@@ -384,7 +384,7 @@ main (int argc, char **argv)
       {NULL,	0,		NULL,		0 }
     };
 
-  while (getopt_long (argc, argv, "u", options, NULL) >= 0);
+  while (getopt_long (argc, argv, "", options, NULL) >= 0);
 
   if (optind + 1 != argc)
     {
diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c
index 83a337c111..69924769bc 100644
--- a/sysdeps/unix/sysv/linux/check_pf.c
+++ b/sysdeps/unix/sysv/linux/check_pf.c
@@ -86,7 +86,7 @@ make_request (int fd, pid_t pid, bool *seen_ipv4, bool *seen_ipv6)
 	   NLMSG_OK (nlmh, (size_t) read_len);
 	   nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
 	{
-	  if ((pid_t) nlmh->nlmsg_pid != pid
+	  if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != pid
 	      || nlmh->nlmsg_seq != req.nlh.nlmsg_seq)
 	    continue;
 
diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c
index 837bfca664..439e26f76c 100644
--- a/sysdeps/unix/sysv/linux/ifaddrs.c
+++ b/sysdeps/unix/sysv/linux/ifaddrs.c
@@ -186,7 +186,8 @@ netlink_receive (struct netlink_handle *h)
 	   NLMSG_OK (nlmh, (size_t) read_len);
 	   nlmh = (struct nlmsghdr *) NLMSG_NEXT (nlmh, read_len))
 	{
-	  if ((pid_t) nlmh->nlmsg_pid != h->pid || nlmh->nlmsg_seq != h->seq)
+	  if (nladdr.nl_pid != 0 || (pid_t) nlmh->nlmsg_pid != h->pid
+	      || nlmh->nlmsg_seq != h->seq)
 	    continue;
 
 	  if (nlmh->nlmsg_type == NLMSG_DONE)