sh (pid 1081) segfaults for page address 00000000 at pc 00000000
Cristian Ionescu-Idbohrn
cristian.ionescu-idbohrn at axis.com
Sat Jan 31 11:11:45 UTC 2009
On Fri, 30 Jan 2009, Cristian Ionescu-Idbohrn wrote:
> And here's the backrtrace:
>
> #0 0x00085616 in segv_handler (signal_number=0)
> at .../busybox-1.13.2/shell/ash.c:3302
> No locals.
> #1 <signal handler called>
> No symbol table info available.
> #2 0x00000000 in ?? ()
> No symbol table info available.
> #3 0x00089040 in cmdlookup (name=0xaf9c00cb "\002Pg\t", add=633580)
> at .../busybox-1.13.2/shell/ash.c:7198
> hashval = 16
> p = 0x9f17f ""
> cmdp = (struct tblentry *) 0xaf9c0038
> pp = (struct tblentry **) 0x1
> #4 0xaf9c00cc in ?? ()
> No symbol table info available.
> Backtrace stopped: frame did not save the PC
>
> Segfault moved to another place, probably expected.
Continued reducing ash build options. Removed:
CONFIG_FEATURE_FANCY_ECHO=y
CONFIG_ASH_BUILTIN_ECHO=y
CONFIG_FEATURE_SH_NOFORK=y
which leaves me with this:
CONFIG_HAVE_DOT_CONFIG=y
CONFIG_EXTRA_COMPAT=y
CONFIG_FEATURE_BUFFERS_GO_IN_BSS=y
CONFIG_SHOW_USAGE=y
CONFIG_FEATURE_VERBOSE_USAGE=y
CONFIG_FEATURE_COMPRESS_USAGE=y
CONFIG_GETOPT_LONG=y
CONFIG_FEATURE_DEVPTS=y
CONFIG_FEATURE_PIDFILE=y
CONFIG_FEATURE_SUID=y
CONFIG_FEATURE_PREFER_APPLETS=y
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
CONFIG_CROSS_COMPILER_PREFIX=""
CONFIG_NO_DEBUG_LIB=y
CONFIG_INSTALL_APPLET_SYMLINKS=y
CONFIG_PREFIX="./_install"
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SIZE_VS_SPEED=1
CONFIG_FEATURE_FAST_TOP=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=2048
CONFIG_FEATURE_EDITING_HISTORY=50
CONFIG_FEATURE_EDITING_SAVEHISTORY=y
CONFIG_FEATURE_TAB_COMPLETION=y
CONFIG_FEATURE_VERBOSE_CP_MESSAGE=y
CONFIG_FEATURE_COPYBUF_KB=8
CONFIG_MONOTONIC_SYSCALL=y
CONFIG_IOCTL_HEX2STR_ERROR=y
CONFIG_DEFAULT_SETFONT_DIR=""
CONFIG_FEATURE_VI_MAX_LEN=
CONFIG_FEATURE_KILL_DELAY=0
CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
CONFIG_FEATURE_LESS_MAXLINES=
CONFIG_IFUPDOWN_IFSTATE_PATH=""
CONFIG_DHCPD_LEASES_FILE=""
CONFIG_UDHCPC_DEFAULT_SCRIPT=""
CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=
CONFIG_FEATURE_MIME_CHARSET=""
CONFIG_SV_DEFAULT_SERVICE_DIR=""
CONFIG_FEATURE_SH_IS_ASH=y
CONFIG_ASH=y
CONFIG_ASH_JOB_CONTROL=y
CONFIG_ASH_ALIAS=y
CONFIG_ASH_MATH_SUPPORT=y
CONFIG_ASH_GETOPTS=y
CONFIG_ASH_CMDCMD=y
CONFIG_ASH_RANDOM_SUPPORT=y
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=
The segfault occurs already during startup. Passed /etc/rcS.d, quite
early during /etc/rc3.d, somewhere i a script which sets up the network
interface. Catched it here:
(gdb) bt full
#0 0x000853ee in segv_handler (signal_number=0)
at .../busybox-1.13.2/shell/ash.c:3302
No locals.
#1 <signal handler called>
No symbol table info available.
#2 0x00000000 in ?? ()
No symbol table info available.
#3 0x00084202 in stack_nputstr (s=0x0, n=618808, p=0xafc9d "on")
at .../busybox-1.13.2/shell/ash.c:1474
No locals.
#4 0x000a3a42 in ?? ()
No symbol table info available.
Backtrace stopped: frame did not save the PC
(gdb) frame 3
#3 0x00084202 in stack_nputstr (s=0x0, n=618808, p=0xafc9d "on")
at .../busybox-1.13.2/shell/ash.c:1474
1474 p = (char *)memcpy(p, s, n) + n;
(gdb) l
1469
1470 static char *
1471 stack_nputstr(const char *s, size_t n, char *p)
1472 {
1473 p = makestrspace(n, p);
1474 p = (char *)memcpy(p, s, n) + n;
1475 return p;
1476 }
1477
1478 static char *
(gdb)
Cheers,
--
Cristian
More information about the busybox
mailing list