ypwhich bus error on i386?

TOMITA Yoshinori yoshint at flab.fujitsu.co.jp
Sun Dec 21 17:41:51 PST 2003


>> On Fri, 12 Dec 2003 00:03:57 +0100, Matthias Andree
>> <matthias.andree at gmx.de> said:

Ma> This happens on a very fresh 5-CURRENT install on a Xeon (HTT enabled):
Ma> # ypwhich -m
Ma> ypwhich: can't find the master of `佩佩佩佩ethers.byaddr: reason: No such map in server's domain
Ma> Bus error (core dumped)


I think this "ypmaster -m" error happens from revision 1.15 of ypwhich.c

struct ypmaplist is defined in <rpcsvc/yp.h> and <rpcsvc/yp_prot.h>
and they are incompatible.

<<yp.h>>
struct ypmaplist {
        mapname map;
        struct ypmaplist *next;
};

<<yp_prot.h>>
struct ypmaplist {
        char ypml_name[YPMAXMAP + 1];
        struct ypmaplist *ypml_next;
};


struct ypmaplist of yp_prot.h is used in ypwhich.c,
while yp_maplist function returns struct ypmaplist of yp.h.


I could find this with gdb ypwhich.

<<revision 1.14>>

(gdb) p ypml
$2 = (struct ypmaplist *) 0x804d050
(gdb) p *ypml
$3 = {map = 0x804d060 "amd_home", next = 0x804d080}
(gdb) p ypml+1
$4 = (struct ypmaplist *) 0x804d058


<<revision 1.15>>

(gdb) p ypml
$11 = (struct ypmaplist *) 0x804d050
(gdb) p *ypml
$12 = {
  ypml_name = "`Ð\004\b\200Ð\004\bÐÐÐÐÐÐÐÐamd_home\0ÐÐÐÐÐÐÐudp\0", 'Ð' <repeats 12 times>, " Ð\004\b°Ð\004\bÐÐÐÐÐÐÐÐt", ypml_next = 0xd0d0d0d0}
(gdb) p ypml+1
$13 = (struct ypmaplist *) 0x804d098



===================================================================
RCS file: /usr/local/www/cvsroot/FreeBSD/src/usr.bin/ypwhich/ypwhich.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -p -r1.14 -r1.15
--- src/usr.bin/ypwhich/ypwhich.c	2002/02/27 14:32:43	1.14
+++ src/usr.bin/ypwhich/ypwhich.c	2003/10/26 05:30:40	1.15
@@ -28,12 +28,15 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/usr.bin/ypwhich/ypwhich.c,v 1.14 2002/02/27 14:32:43 dwmalone Exp $");
+__FBSDID("$FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/usr.bin/ypwhich/ypwhich.c,v 1.15 2003/10/26 05:30:40 peter Exp $");
 
 #include <sys/param.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 
+#include <rpc/rpc.h>
+#include <rpc/xdr.h>
+#include <rpcsvc/yp_prot.h>
 #include <rpcsvc/ypclnt.h>
 
 #include <netinet/in.h>
@@ -47,10 +50,6 @@ __FBSDID("$FreeBSD: /usr/local/www/cvsro
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <rpcsvc/yp.h>
-struct dom_binding{};

   --snip--


-- 
---
TOMITA Yoshinori
(Fujitsu Laboratories Ltd., Kawasaki, Japan)


More information about the freebsd-current mailing list