Date: Wed, 18 Sep 2002 20:05:29 -0400 (EDT) From: Trish Lynch <trish@bsdunix.net> To: <freebsd-net@freebsd.org> Cc: <freebsd-current@freebsd.org> Subject: Broken IPv4 in IPv6 on -current? Message-ID: <20020918200221.I266-100000@femme.sapphite.org>
next in thread | raw e-mail | index | archive | help
FreeBSD femme.sapphite.org 5.0-CURRENT FreeBSD 5.0-CURRENT #16: Mon Sep 9 10:23:22 EDT 2002 trish@femme.sapphite.org:/admins/obj/admins/src/sys/FEMME i386 foo.c: #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <netdb.h> #include <unistd.h> #include <netinet/in.h> #include <sys/types.h> #include <sys/socket.h> int main(int argc, char *argv[]) { struct sockaddr_in6 addr; struct hostent *hostinfo; int sock; memset(&addr, 0, sizeof(struct sockaddr_in6)); addr.sin6_addr = in6addr_any; addr.sin6_family = AF_INET6; if(argc < 2) return 0; hostinfo = gethostbyname2(argv[1], AF_INET6); memcpy((char *)&addr.sin6_addr, hostinfo->h_addr, hostinfo->h_length); addr.sin6_family = hostinfo->h_addrtype; addr.sin6_port = htons((u_short)5555); sock = socket(AF_INET6, SOCK_STREAM, 0); bind(sock, (struct sockaddr *)&addr, sizeof(struct sockaddr_in6)); listen(sock, 5); sleep(60); return 0; } femme:~#strace ./foo ::ffff:127.0.0.1 execve(0xbfbff5c0, [0xbfbffaa4], [/* 0 vars */]) = 0 mmap(0, 2664, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2805f000 munmap(0x2805f000, 2664) = 0 __sysctl([...], 0x2805e4c8, 0xbfbff864, NULL, 0) = 0 mmap(0, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x2805f000 geteuid(0) = 0 getuid() = 0 (euid 0) getegid(0) = 0 getgid() = 0 (egid 0) open("/var/run/ld-elf.so.hints", O_RDONLY) = 3 read(3, "ins/src/libexec/rtld-elf/rtld.c:"..., 128) = 128 lseek(3, 549755813888, SEEK_SET) = 128 read(3, "/usr/lib:/usr/lib/compat:/usr/X1"..., 145) = 145 close(3) = 0 access("/usr/lib/libc.so.5", F_OK) = 0 open("/usr/lib/libc.so.5", O_RDONLY) = 3 fstat(3, {st_mode=0, st_size=0, ...}) = 0 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 mmap(0, 741376, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x28067000 mmap(0x28103000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9b00000000000) = 0x28103000 mmap(0x28108000, 81920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON, -1, 0) = 0x28108000 close(3) = 0 mmap(0, 184, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2811c000 munmap(0x2811c000, 184) = 0 mprotect(0x28067000, 638976, PROT_READ|PROT_WRITE|PROT_EXEC) = 0 mmap(0, 18856, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0) = 0x2811c000 munmap(0x2811c000, 18856) = 0 mprotect(0x28067000, 638976, PROT_READ|PROT_EXEC) = 0 sigaction(SIGILL, {SIG_DFL}, {SIG_DFL}) = 0 sigprocmask(SIG_BLOCK, NULL, []) = 0 sigaction(SIGILL, {SIG_DFL}, NULL) = 0 sigprocmask(SIG_BLOCK, ~[ILL TRAP ABRT EMT FPE BUS SEGV SYS], []) = 0 sigprocmask(SIG_SETMASK, [], NULL) = 0 stat("/etc/nsswitch.conf", {st_mode=S_IFBLK|S_ISGID|0554, st_rdev=makedev(40, 2037645344), ...}) = 0 open("/etc/nsswitch.conf", O_RDONLY) = 3 readlink("/etc/malloc.conf", 0xbfbff830, 63) = -1 ENOENT (No such file or directory) mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0) = 0x2811c000 break(0x804b000) = 0 break(0x804c000) = 0 break(0x804d000) = 0 break(0x804e000) = 0 break(0x804f000) = 0 ioctl(3, TIOCGETA, 0xbfbff800) = -1 ENOTTY (Inappropriate ioctl for device) fstat(3, {st_mode=0177350, st_size=18446461400436899560, ...}) = 0 break(0x8051000) = 0 read(3, "hosts: files dns \n", 8192) = 18 read(3, "", 8192) = 0 break(0x8052000) = 0 break(0x8053000) = 0 ioctl(3, TIOCGETA, 0xbfbff7f0) = -1 ENOTTY (Inappropriate ioctl for device) close(3) = 0 open("/etc/hosts", O_RDONLY) = 3 gettimeofday({1869638985, 1651078003}, NULL) = 0 getpid() = 97560 (ppid 97559) issetugid(0x7ae) = 0 open("/etc/resolv.conf", O_RDONLY) = 4 fstat(4, {st_mode=S_IFBLK|S_ISGID|0566, st_rdev=makedev(114, 543490165), ...}) = 0 read(4, "search sapphite.org\nnameserver 6"..., 8192) = 86 read(4, "", 8192) = 0 close(4) = 0 issetugid(0x7ae) = 0 fstat(3, {st_mode=0150320, st_size=15046755950319947984, ...}) = 0 read(3, "# $FreeBSD: src/etc/hosts,v 1.11"..., 8192) = 1360 read(3, "", 8192) = 0 close(3) = 0 socket(PF_INET6, SOCK_STREAM, 0) = 3 bind(3, {sin_family=0xd0 /* AF_??? */, {sa_family=208, sa_data="\320\320\320\320\320\320\320\320\320\320\320\320\320\320"...}, 28) = -1 EADDRNOTAVAIL (Can't assign requested address) listen(3, 5) = 0 nanosleep(0xbfbff9f8, 0xbfbff9f0^C <unfinished ...> its pretty bizarre.... -- Trish Lynch trish@bsdunix.net Ecartis Core Team trish@listmistress.org Key fingerprint = C44E 8E63 6E3C 18BD 608F E004 9DC7 C2E9 0E24 DFBD To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020918200221.I266-100000>