OVERVIEW DESCRIPTION: Applications such as smbpasswd and smbclient core dump immediately if the LANG environment variable is set to en_US. It does not core dump if LANG is set to other values such as C, POSIX, En_US or en_GB. STEPS TO REPRODUCE: Run one of the applications with LANG=en_US # cd /usr/local/source/samba-3.0.1/source/bin # export LANG=en_US # ./smbpasswd ACTUAL RESULTS: The application core dumps with a segmentation fault. # ./smbpasswd Segmentation fault(coredump) EXPECTED RESULTS: A prompt for a password... # export LANG=C # ./smbpasswd New SMB password: BUILD DATE & PLATFORM: Samba 3.0.1 2003-12-15 on AIX 4.3.3 ML 11 ADDITIONAL BUILDS & PLATFORMS: I know this also occurs with Samba 3.0.0. ADDITIONAL INFORMATION: Here's a stack trace from dbx. # dbx (omitted several -I directives) ./smbpasswd Type 'help' for help. reading symbolic information ...warning: iconv.c is newer than /usr/local/lib/libiconv.a [using memory image in core] Segmentation fault in ptrgl.$PTRGL [/usr/lib/libc.a] at 0xd0170f90 0xd0170f90 ($PTRGL) 800b0000 lwz r0,0x0(r11) (dbx) where ptrgl.$PTRGL() at 0xd0170f90 setlocale.setlocale(??, ??) at 0xd018fc5c unnamed block $b223, line 63 in "charcnv.c" charset_name(0x2), line 63 in "charcnv.c" unnamed block $b234, line 120 in "charcnv.c" init_iconv(), line 120 in "charcnv.c" lazy_initialize_conv(), line 93 in "charcnv.c" convert_string_allocate(0x0, 0x1, 0x0, 0x2004c0f8, 0x9, 0x2ff21c14), line 391 in "charcnv.c" push_ucs2_allocate(0x2ff21c14, 0x2004c0f8), line 833 in "charcnv.c" unix_strupper(0x2004c0f8, 0x9, 0x2004c0f8, 0x9), line 519 in "charcnv.c" strupper_m(0x2004c0f8), line 1335 in "util_str.c" set_global_myname(0x2003c860), line 102 in "util.c" init_globals(), line 1334 in "loadparm.c" lp_load(0x2ff225c4, 0x1, 0x0, 0x0), line 3923 in "loadparm.c" process_options(argc = 0, argv = 0x2ff22a94, local_flags = 576), line 204 in "smbpasswd.c" main(argc = 1, argv = 0x2ff22a90), line 581 in "smbpasswd.c" Note that this appears to occur in function charset_name() in charcnv.c when it tries to set the locale. There's a fragment of code as follows: #ifdef HAVE_SETLOCALE setlocale(LC_ALL, ""); #endif If I comment out this code and recompile then the problem does not occur.
Jeremy, can you look at this?
This looks like a AIX libc bug. The call : setlocale(LC_ALL, ""); is a POSIX standard call telling libc to set the locale from the environment variables. An IBMer needs to have a look at this. Jeremy.
Reassigning to Jim. He has access to AIX (I don't). Jeremy.
could someone make a call on whether this is a Samba issue or not? Seems like an another AIX issue to me.
This is probably fixed if it was our bug. If not, then it points to an AIX issue. Closing
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.
database cleanup