hi Ludo, thanks for reply. I realized that it's not SIGSEGV ,it's an "abort" while argv[0] is NULL. Now the problem is "can we avoid to pass void string to exec proc explicitly"? Since Guile provides flexible optional arguments handling, why we can not do this: let (execlp "ls") equal to (execlp "ls" "") if the second argument is unbounded?
On Fri, Dec 16, 2011 at 3:19 AM, Ludovic Courtès <l...@gnu.org> wrote: > Hi! > > Sorry for the late reply. > > Nala Ginrut <nalagin...@gmail.com> skribis: > > > I found "exec" serial procedures didn't check the unbounded optional > > parameters. > > (execlp "ls") ==> segment fault > > What you’re seeing here is SIGABRT, not SIGSEGV, preceded by the message: > > A NULL argv[0] was passed through an exec system call. > > That message comes from Gnulib’s ‘set_program_name’ [0], which is used > by all GNU Coreutils program, and which aborts when argv[0] is NULL. > > Thanks, > Ludo’. > > [0] http://git.savannah.gnu.org/cgit/gnulib.git/tree/lib/progname.c#n53 > > >