On Fri, Nov 8, 2013 at 6:20 PM, Joshuah Hurst <[email protected]> wrote:
> On Fri, Nov 8, 2013 at 3:46 PM, David Korn <[email protected]> wrote:
>> On Fri, Nov 8, 2013 at 7:39 AM, Joshuah Hurst <[email protected]> wrote:
>>>
>>> LC_ALL=C shcomp crashes but my Debian system has no debugger. Can
>>> anyone investigate, please?
>>
>> shcomp on why file crashes?
>
> printf 'print hello' | LC_ALL=C /usr/bin/shcomp | /usr/bin/ksh
> dumps core

I can reproduce the issue on Illumos with "shcomp" from a
ast-ksh.2013-10-10/AMD64/64bit build:
-- snip --
$ printf 'print hello' | LC_ALL=C ~/bin/shcomp | ~/bin/ksh
$ dbx - core
Corefile specified executable: "/home/test001/bin/shcomp"
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.6' in your .dbxrc
Reading shcomp
core file header read successfully
Reading ld.so.1
Reading libm.so.2
Reading libdl.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libmd.so.1
Reading libsecdb.so.1
Reading libc.so.1
program terminated by signal SEGV (no mapping at the fault address)
Current function is dtuserdata
   45                   return asogetptr(&dt->data->user.data);
(dbx) where
=>[1] dtuserdata(dt = (nil), data = (nil), set = 0), line 45 in "dtuser.c"
  [2] nv_open(name = 0xfffffd7fff039bd0 "_AST_FEATURES=CONFORMANCE -
ast", root = (nil), flags = 2105984), line 1412 in "name.c"
  [3] sh_setenviron(name = 0xfffffd7fff039bd0
"_AST_FEATURES=CONFORMANCE - ast"), line 3295 in "name.c"
  [4] _ast_setenviron(name = 0xfffffd7fff039bd0
"_AST_FEATURES=CONFORMANCE - ast"), line 3308 in "name.c"
  [5] synthesize(fp = 0x6d3908, path = 0x6b1f50 "-", value = 0x6b2278
"ast"), line 481 in "astconf.c"
  [6] initialize(fp = 0x6d3908, path = 0x6d3b70 "/", command = (nil),
succeed = 0x6b1fa0 "standard", fail = 0x6b2278 "ast"), line 620 in
"astconf.c"
  [7] format(fp = 0x6d3908, path = 0x6d3b70 "/", value = (nil), flags
= 0, conferror = (nil)), line 686 in "astconf.c"
  [8] feature(fp = 0x6d3908, name = 0x6b2f70 "CONFORMANCE", path =
0x6d3b70 "/", value = (nil), flags = 0, conferror = (nil)), line 864
in "astconf.c"
  [9] astgetconf(name = 0x6b2f70 "CONFORMANCE", path = 0x6d3b70 "/",
value = (nil), flags = 0, conferror = (nil)), line 1547 in "astconf.c"
  [10] astconf(name = 0x6b2f70 "CONFORMANCE", path = (nil), value =
(nil)), line 1569 in "astconf.c"
  [11] initconformance(), line 53 in "conformance.c"
  [12] conformance(s = (nil), n = 0), line 125 in "conformance.c"
  [13] _ast_codeset(op = 0), line 55 in "codeset.c"
  [14] set_ctype(cp = 0x6d0d48), line 2386 in "setlocale.c"
  [15] single(category = 2, lc = 0x6d1030, flags = 0), line 2625 in
"setlocale.c"
  [16] _ast_setlocale(category = 0, locale = 0x6ad748 ""), line 2902
in "setlocale.c"
  [17] init(s = 0x654ed4 "[-?\n@(#)$Id: shcomp (AT&T Research)
2003-03-02 $\n][-author?David Korn
<[email protected]>][-copyright?Copyright (c) 1982-2013 AT&T
Intellectual 
Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libshell][+NAME?shcomp
- compile a shell script][+DESCRIPTION?Unless ^H-D^H is specified,
^Hshcomp^H takes a shell script, ^Ginfile^G, and creates a binary
format file, ^Goutfile^G, that ^Hksh^H can read and execute with the
same effect as the original script.][+?Since aliases are processed as
" ..., p = 0x6e63e8), line 994 in "optget.c"
  [18] _ast_optget(argv = 0xfffffd7fffdffc58, oopts = 0x654ed4
"[-?\n@(#)$Id: shcomp (AT&T Research) 2003-03-02 $\n][-author?David
Korn <[email protected]>][-copyright?Copyright (c) 1982-2013 AT&T
Intellectual 
Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?libshell][+NAME?shcomp
- compile a shell script][+DESCRIPTION?Unless ^H-D^H is specified,
^Hshcomp^H takes a shell script, ^Ginfile^G, and creates a binary
format file, ^Goutfile^G, that ^Hksh^H can read and execute with the
same effect as the original script.][+?Since aliases are processed as
" ...), line 4388 in "optget.c"
  [19] main(argc = 1, argv = 0xfffffd7fffdffc58), line 79 in "shcomp.c"
-- snip --

The important part seems to be the $ env - ... # to clear the
environment and then explicitly set LC_ALL=C ... note that |nv_open()|
is called with a |NULL| |root| argument...

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) [email protected]
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL +49 641 3992797
 (;O/ \/ \O;)
_______________________________________________
ast-developers mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-developers

Reply via email to