Not only is the Internet dead, it's starting to smell really bad.:2007年08月上旬

2007/08/06(Mon)

[NetBSD] compat_linux.o

いつものことだけども/usr/lkm/compat_linux.oがmodloadできなくなっとる、4.99.25。
あとでちとチェックしとくか。

最近買ったもの

The Traveling Wilburys Collection
もう長いこと廃盤状態だったとは知らんかったが、リマスタ+DVD付きで再発なのでゲと。

2007/08/07(Tue)

[NetBSD] 続 compat_linux.o

/usr/lkm/compat_linux.o: In function `linux_sys_ptrace':
: undefined reference to `linux_sys_ptrace_arch'
/usr/lkm/compat_linux.o:(.data+0xb88): undefined reference to `linux_sys_futex'
modload: can't prelink `/usr/lkm/compat_linux.o' creating `/usr/lkm/compat_linux'

前者のlinux_sys_ptraceは kern/34478で報告済のやつ。
linux_sys_futexの方はこんなパッチでおk。

Index: sys/compat/linux/common/linux_futex.c
===================================================================
RCS file: /cvsroot/src/sys/compat/linux/common/linux_futex.c,v
retrieving revision 1.7
diff -u -r1.7 linux_futex.c
--- sys/compat/linux/common/linux_futex.c	24 Jul 2006 19:01:49 -0000	1.7
+++ sys/compat/linux/common/linux_futex.c	7 Aug 2007 02:04:22 -0000
@@ -34,6 +34,8 @@
 #include <sys/cdefs.h>
 __KERNEL_RCSID(1, "$NetBSD: linux_futex.c,v 1.7 2006/07/24 19:01:49 manu Exp $");
 
+#include <sys/param.h>
+#include <sys/kernel.h>
 #include <sys/types.h>
 #include <sys/time.h>
 #include <sys/systm.h>
@@ -43,6 +45,8 @@
 #include <sys/lock.h>
 #include <sys/malloc.h>
 
+#include <compat/linux/common/linux_types.h>
+#include <compat/linux/common/linux_signal.h>
 #include <compat/linux/common/linux_futex.h>
 #include <compat/linux/linux_syscallargs.h>
 
Index: sys/lkm/compat/linux/Makefile
===================================================================
RCS file: /cvsroot/src/sys/lkm/compat/linux/Makefile,v
retrieving revision 1.32
diff -u -r1.32 Makefile
--- sys/lkm/compat/linux/Makefile	22 Apr 2007 08:30:01 -0000	1.32
+++ sys/lkm/compat/linux/Makefile	7 Aug 2007 02:04:22 -0000
@@ -22,6 +22,7 @@
 SRCS+=	linux_machdep.c linux_syscalls.c linux_sysent.c
 SRCS+=	linux_fdio.c linux_hdio.c linux_blkio.c linux_sysctl.c
 SRCS+=	linux_sg.c linux_mtio.c
+SRCS+=	linux_ptrace.c linux_futex.c
 
 # XXXX - temporary, not applicable for kernel with COMPAT_43, OSSAUDIO
 #.PATH: $S/compat/common $S/compat/ossaudio

それと kern/34010は最近直っとるな、closeしとくか。

[FreeBSD] どうでもいいネタ

src/libexec/rtld-elf/rtld.h rev1.38

93 typedef struct Struct_Name_Entry {
94 	STAILQ_ENTRY(Struct_Name_Entry) link;
95 	char   name[1];
96 } Name_Entry;

src/libexec/rtld-elf/rtld.c rev1.124

3144 static void
3145 object_add_name(Obj_Entry *obj, const char *name)
3146 {
3147 	Name_Entry *entry;
3148 	size_t len;
3149 
3150 	len = strlen(name);
3151 	entry = malloc(sizeof(Name_Entry) + len);
3152 
3153 	if (entry != NULL) {
3154 		strcpy(entry->name, name);
3155 		STAILQ_INSERT_TAIL(&obj->names, entry, link);
3156 	}
3157 }

3151行目の + len を見てなくてオーバーフロー疑っちまったぜ。
これはstrdup(3)とか使わずにmalloc(3)一回で済ませて性能を稼ぐ意図なのかねぇ。
リンクローダってそんな切羽詰った実装しないとダメなのかな?

2007/08/08(Wed)

[OpenBSD] 私は如何にして心配するのを止めてCitrusを(以下ry

なぜOpenBSDのCitrusは完全体でないのか(フリーザ様AA略
http://www.undeadly.org/cgi?action=article&sid=20070806022021&pid=41

Theoにとっての 夏蜜柑が四つPlain Citrusにあるいくつかの問題ってなんだろうね、やっぱdlopen(3)かねぇ。

もしかしてBSD AUTHみたくmultibyte encoding moduleをshared libraryでなくexecutableにすりゃ
納得するんだろうかwwwwwちょww無意味wwww