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>
