Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] segfault in Unix.gethostbyname
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-03-26 (18:22)
From: Kenneth Knowles <kknowles@b...>
Subject: [Caml-list] segfault in Unix.gethostbyname
Hi all,

I get a segfault from Unix.gethostbyname whenever I have wins enabled in my
nsswitch.conf, but with wins removed everything is fine.  I'm hoping someone
with more unix/ocaml-C experience will have a clue.  This was actually working a
week ago, but I had to "flatten and reinstall" my system.

$ grep wins /etc/nsswitch.conf
hosts:       files wins dns 

$ gdb ocamlrun
(gdb) run /usr/local/bin/ocaml unix.cma
Starting program: /usr/local/bin/ocamlrun /usr/local/bin/ocaml unix.cma
        Objective Caml version 3.07+2

# Unix.gethostbyname "dbdev";;

Program received signal SIGSEGV, Segmentation fault.
0x080536c3 in string_set ()
(gdb) bt
#0  0x080536c3 in string_set ()
#1  0x4034b971 in _nss_wins_gethostbyname2_r () from /lib/
#2  0x403cb42c in bLoaded () from /lib/
#3  0x4039bb5b in ?? () from /lib/
#4  0x00000294 in ?? ()

Now I can see it is some kind of string error, and it occurs in the WINS
library, but I'm sure it traces back somehow to the ocaml String_val(..)

On my system, WINS has no other problems (ping, samba sharing, etc):

$ ping dbdev
PING dbdev ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=128 time=28.5 ms
64 bytes from icmp_seq=2 ttl=128 time=28.0 ms

Any ideas what could cause this?  I'm about to dive into the winbind code for
clues but that sounds awful.  It is samba 3.02a (also with samba 2.2.8) and
ocaml 3.07+2


p.s.  This was a pain to track down because it first showed up as a segfault in
my binding to the FreeTDS library and I figured I had just made any of a million
possible mistakes in C.

To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: