Module Name: src
Committed By: joerg
Date: Thu Jun 30 19:46:07 UTC 2011
Modified Files:
src/lib/libc/gen: execl.c execle.c execlp.c
Log Message:
Drop special cases for i386 and m68k. It is not a validate assumption
that the address of an argument is at the same stack slot the caller
placed in it. It is perfectely valid to copy it into the local frame
first.
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/lib/libc/gen/execl.c
cvs rdiff -u -r1.11 -r1.12 src/lib/libc/gen/execle.c \
src/lib/libc/gen/execlp.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/gen/execl.c
diff -u src/lib/libc/gen/execl.c:1.16 src/lib/libc/gen/execl.c:1.17
--- src/lib/libc/gen/execl.c:1.16 Wed Jan 9 11:26:03 2008
+++ src/lib/libc/gen/execl.c Thu Jun 30 19:46:07 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: execl.c,v 1.16 2008/01/09 11:26:03 simonb Exp $ */
+/* $NetBSD: execl.c,v 1.17 2011/06/30 19:46:07 joerg Exp $ */
/*-
* Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)exec.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: execl.c,v 1.16 2008/01/09 11:26:03 simonb Exp $");
+__RCSID("$NetBSD: execl.c,v 1.17 2011/06/30 19:46:07 joerg Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -56,10 +56,6 @@
execl(const char *name, const char *arg, ...)
{
int r;
-#if defined(__i386__) || defined(__m68k__)
- r = execve(name, __UNCONST(&arg), environ);
- return r;
-#else
va_list ap;
char **argv;
int i;
@@ -82,5 +78,4 @@
r = execve(name, argv, environ);
return r;
-#endif
}
Index: src/lib/libc/gen/execle.c
diff -u src/lib/libc/gen/execle.c:1.11 src/lib/libc/gen/execle.c:1.12
--- src/lib/libc/gen/execle.c:1.11 Wed Jan 9 11:26:03 2008
+++ src/lib/libc/gen/execle.c Thu Jun 30 19:46:07 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: execle.c,v 1.11 2008/01/09 11:26:03 simonb Exp $ */
+/* $NetBSD: execle.c,v 1.12 2011/06/30 19:46:07 joerg Exp $ */
/*-
* Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)exec.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: execle.c,v 1.11 2008/01/09 11:26:03 simonb Exp $");
+__RCSID("$NetBSD: execle.c,v 1.12 2011/06/30 19:46:07 joerg Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -50,18 +50,6 @@
int
execle(const char *name, const char *arg, ...)
{
-#if defined(__i386__) || defined(__m68k__)
- va_list ap;
- char **envp;
-
- va_start(ap, arg);
- while ((va_arg(ap, char *)) != NULL)
- continue;
- envp = va_arg(ap, char **);
- va_end(ap);
-
- return execve(name, __UNCONST(&arg), envp);
-#else
va_list ap;
char **argv, **envp;
int i;
@@ -81,5 +69,4 @@
va_end(ap);
return execve(name, argv, envp);
-#endif
}
Index: src/lib/libc/gen/execlp.c
diff -u src/lib/libc/gen/execlp.c:1.11 src/lib/libc/gen/execlp.c:1.12
--- src/lib/libc/gen/execlp.c:1.11 Wed Jan 9 11:26:03 2008
+++ src/lib/libc/gen/execlp.c Thu Jun 30 19:46:07 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: execlp.c,v 1.11 2008/01/09 11:26:03 simonb Exp $ */
+/* $NetBSD: execlp.c,v 1.12 2011/06/30 19:46:07 joerg Exp $ */
/*-
* Copyright (c) 1991, 1993
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)exec.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: execlp.c,v 1.11 2008/01/09 11:26:03 simonb Exp $");
+__RCSID("$NetBSD: execlp.c,v 1.12 2011/06/30 19:46:07 joerg Exp $");
#endif
#endif /* LIBC_SCCS and not lint */
@@ -50,9 +50,6 @@
int
execlp(const char *name, const char *arg, ...)
{
-#if defined(__i386__) || defined(__m68k__)
- return execvp(name, __UNCONST(&arg));
-#else
va_list ap;
char **argv;
int i;
@@ -71,5 +68,4 @@
va_end(ap);
return execvp(name, argv);
-#endif
}