NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/38881: execve(2) panic: lock error, with path argument > PATH_MAX
>Number: 38881
>Category: kern
>Synopsis: execve(2) panic: lock error, with path argument > PATH_MAX
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Fri Jun 06 19:45:00 +0000 2008
>Originator: Nicolas Joly
>Release: NetBSD 4.99.64
>Organization:
Biological Software and Databanks.
Institut Pasteur, Paris.
>Environment:
System: NetBSD lanfeust.sis.pasteur.fr 4.99.64 NetBSD 4.99.64 (LANFEUST) #0:
Fri Jun 6 20:14:12 CEST 2008
njoly%lanfeust.sis.pasteur.fr@localhost:/local/src/NetBSD/obj.amd64/sys/arch/amd64/compile/LANFEUST
amd64
Architecture: x86_64
Machine: amd64
>Description:
I just got a lock error panic, with execve(2) when the path argument exceed
the maximum allowed value of PATH_MAX.
njoly@lanfeust [emul/netbsd]> cat execve.c
#include <err.h>
#include <errno.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int main() {
char *cmd[] = { "", NULL };
char *buf;
int res;
size_t len;
len = PATH_MAX + 1;
buf = malloc(len+1);
if (buf == NULL)
err(1, "malloc failed");
memset(buf, 'a', len);
*(buf+len+1) = '\0';
cmd[0] = buf;
res = execve(*cmd, cmd, NULL);
if (res == -1)
err(1, "execve failed");
free(buf);
return 0; }
njoly@lanfeust [emul/netbsd]> make execve
cc -O2 -o execve execve.c
njoly@lanfeust [emul/netbsd]> ./execve
[PANIC]
panic: lock error
fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff804f9f45 cs 8 rflags 246 cr2 7f7ffda01020 cpl 0
rsp ffff80004a6f4720
Stopped in pid 809.1 (execve) at netbsd:breakpoint+0x5: leave
db{0}> bt
breakpoint() at netbsd:breakpoint+0x5
panic() at netbsd:panic+0x260
lockdebug_abort() at netbsd:lockdebug_abort+0x42
rw_vector_exit() at netbsd:rw_vector_exit+0xa7
execve1() at netbsd:execve1+0xeb
syscall() at netbsd:syscall+0x9a
This is a GENERIC+DIAGNOSTIC kernel, with a few extra devices.
>How-To-Repeat:
compile and run the above testcase.
>Fix:
n/a
Home |
Main Index |
Thread Index |
Old Index